테스트 사이트 - 개발 중인 베타 버전입니다

mysql date() 함수 관련 궁금증. 채택완료

function checkInWeek($date) {
   global $g5;
   $sql = "SELECT if (date(DATE_ADD(NOW(), INTERVAL -1 WEEK )) <= date('{$date}', 1,0) chk";
   $row = sql_fetch($sql);
   return $row['chk'];
}
 
for($i=1; $i <=4; $i++ )  {
    if (checkInWeek($row['od_date'.$i])) 
        echk " 1주일 이전일자 입니다. : ".$row['od_date'.$i];
}

 

https://sir.kr/qa/377793

플래토 님 코드 중 궁금한 게....저 핑크색 부분 ...올바른 거 맞나요?

뭔가 괄호짝이 안 맞는 느낌이랄까....

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

DATE_ADD 는 지금에서 1주를 빼는 것 같고

https://www.w3schools.com/sql/func_mysql_date_add.asp

 

Date 함수를 보면 https://www.w3schools.com/sql/func_mysql_date.asp

 

별도로 들어가는 것은 없고..

 

SQL IF문을 보니 https://www.w3schools.com/sql/func_mysql_if.asp

 

그것에 리턴되는 것이네요..

 

</p>

<p>SELECT if (date(DATE_ADD(NOW(), INTERVAL -1 WEEK )) <= date(`{$date}`),1,0)</p>

<p>

 

넘어 온것이 맞으면 1을 아니면 0을...

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

자세한 설명 감사합니다.
그럼, 혹시, $row['chk'] 값이 1과 0 둘 중 하나가 되는 건가요?
답변주신 검은색 코드 부분이 1또는 0이 되는 건 알겠는데,
chk는 어떤 용도로 바로 뒤에 써서 그것을 반환하는 것인지
이유가 이해가 잘 안 되네요. ^^;;

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p>SELECT if (date(DATE_ADD(NOW(), INTERVAL -1 WEEK )) <= date(NOW()),1,0) chk</p>

<p>

 

로 하면 1, 0값이 chk로 할당되는 것 같습니다. 즉 이 값으로..

$row['chk']

SQL 문장 테스트는 여기서 해보면 되네요

 

https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_date2

즉 $row

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

덕분에 궁금증이 말끔히 해결되었습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고