게시판 본문 ASP, ASP.NET, IIS & Script - Read Only  
| re: 검색부분 | 
|---|
| 
                작성자: 송원석
             
                작성일시: 2006-07-31 16:27, 
                조회수: 4,284
             | 
| 
                        안녕하세요? 송원석입니다. ^_^ 질문하신 내용으로 미루어 짐작해보건데, 단순히 주민등록번호 값을 비교하지 못해서 제게 질문하신 것은 아니라는 생각입니다. 맞죠? ^_^;;; 지금 문제는 SELECT 태그에서 숫자값으로 넘어오는 값을 기반으로, 나이에 대한 불규칙한 패턴의 구간을 설정하는 방법에 대한 것이 요점인 것 같습니다. 그리고 가급적이면 문자열 이어붙이기를 하고 싶지 않으신 것 같구요. 저라면 이런 방법을 사용해 볼 것 같습니다. 한 번 참고해보시고 의견이 있으시면 편안하게 말씀주시기 바랍니다. 먼저 빈 문자열이 넘어오는 경우에는 단순히 상수를 정하여 검색을 하시면 될 것 입니다. 즉 0001 년 01 월 01 일 보다 크고 9999 년 12 월 31 일 보다 작은 데이터를 조회하면 되겠죠. 문제는 네 개로 나누어진 구간인데 규칙성을 찾아내기만 하면 될 것 같습니다. ^_^ 그리고 네 개로 나누어진 구간은 20 세 부터 40 세까지 5 년 단위로 나누어져 있군요. 그런데 구간 자체가 조금 문제가 있는 것 같습니다. 지금 올려주신 바에 따르면 다음과 같이 되어있는데, 구간의 시작 부분 정의에 문제가 있는 것 같습니다. 즉 구간이 끝나는 값은 각각 25, 30, 35, 40 으로 5 씩 증가합니다. 그런데 시작값은 20, 26, 31, 35 로 들쑥날쑥하군요. 
<select name="age" style="width:60; height=18">
    <option value="">나이</option>
    <option value="1">20~25</option>
    <option value="2">26~30</option>
    <option value="3">31~35</option>
    <option value="4">35~40</option>
</select>
제 생각으로는 21, 26, 31, 36 이 되거나, 또는 처음 시작하는 20 세를 특별 취급한다고 하더라도 20, 26, 31, 36 이 되는 것이 맞는 것 같습니다. 따라서 다음과 같은 구간이 올바르다고 한다면...
<select name="age" style="width:60; height=18">
    <option value="">나이</option>
    <option value="1">20~25</option>
    <option value="2">26~30</option>
    <option value="3">31~35</option>
    <option value="4">36~40</option>
</select>
이런 데이터라면 다음과 같은 간단한 공식으로 구간을 구할 수 있을 것 같습니다. 넘어온 값을 N 이라고 가정한다면 의사코드는 다음과 같이 되겠죠...
MinAge = (N - 1) * 5 + 20 + 1
MaxAge = N * 5 + 20
If N = '1' Then
    MinAge = MinAge - 1
End If
이제 오늘 날자를 기준으로 비교할 날자를 구하면 됩니다. 예를 들어서 넘어온 SELECT 태그의 값이 3 이라면 MinAge 는 31, MaxAge 는 35 이므로...FormDate = TODAY - 35 년 ToDate = TODAY - 31 년 + 1 년이 될 것입니다. ToDate 에 1 년이 더 붙는 이유는 나이란게 그렇게 먹는 것이니까 그런 것이구요. 즉 오늘은 2006 년 07 월 31 일 이므로 FromDate 는 1971 년 07 월 31 일이고, ToDate 는 1976 년 07 월 31 일이죠. 따라서 문자열을 이어붙이면 710731 보다 크거나 같고, 760731 보다 작은 로우를 가져오시면 되겠죠. ^_^ 감사합니다. | 
| IP 주소: 203.231.54.116  | 
        전체 2,095 건의 게시물,
        84 페이지로 구성된
        ASP, ASP.NET, IIS & Script 게시판의
        24 페이지입니다.
    
|   | 게시물 | |||
|---|---|---|---|---|
| 1,562 | 2006-08-17 | 7,159 | ||
| 1,561 | 2006-08-18 | 4,581 | ||
| 1,560 | 2006-08-18 | 15,035 | ||
| 1,559 | kall | 2006-08-08 | 1,481 | |
| 1,558 | 2006-08-03 | 4,012 | ||
| 1,557 | 2006-08-03 | 4,363 | ||
| 1,556 | 꿈꾸는사람 | 2006-08-02 | 1,708 | |
| 1,555 | 2006-08-03 | 5,260 | ||
| 1,554 | 질문 | 2006-07-31 | 1,499 | |
|  | 2006-07-31 | 4,284 | ||
| 1,552 | 질문 한가지 드리겠습니다. [2] | 2006-07-26 | 5,265 | |
| 1,551 | 2006-07-21 | 11,066 | ||
| 1,550 | 2006-07-21 | 4,023 | ||
| 1,549 | 무관 | 2006-07-19 | 1,415 | |
| 1,548 | 2006-07-19 | 3,897 | ||
| 1,546 | 궁굼이 | 2006-07-18 | 1,307 | |
| 1,545 | 2006-07-18 | 4,122 | ||
| 1,544 | 
                             | 궁굼이 | 2006-07-18 | 1,270 | 
| 1,543 | 질문자 | 2006-07-14 | 1,273 | |
| 1,542 | 
                             | 2006-07-15 | 3,934 | |
| 1,541 | 2006-07-13 | 4,003 | ||
| 1,540 | 2006-07-15 | 4,195 | ||
| 1,539 | 2006-07-16 | 3,812 | ||
| 1,538 | 2006-07-12 | 3,848 | ||
| 1,537 | 2006-07-12 | 4,035 | 

 sign in
 sign in
 join
 join 
     re: 폼(form) 전송 스택 오버플로우 문제입니다.
 re: 폼(form) 전송 스택 오버플로우 문제입니다. 확인
 확인 취소
 취소