시간비교시에는 MySQL의 INTERVAL 을 이용하는 것이 가장 편한 것으로 보인다.
예)
WHERE
myTable.datetimefield > now() - INTERVAL 3 DAY (or MONTH or WEEK )
==> 그러나, 날짜간에는 빼기 보다는 DATE_SUB를 사용해야 하고.
BETWEEN도 사용이 가능하지만,.. 작은 날짜를 앞에 써야 한다.
WHERE my_date BETWEEN DATE_SUB(now(), INTERVAL 1 WEEK) AND now()
참) 그리고 NULL을 비교할때는, IS NULL 또는 IS NOT NULL 을 사용해야 한다.
그 외 Doma라는 ORM에서 IF와 같이 쓰는 경우엔 다음과 같이 섞어서 사용할 수도 있다.
service.service_code
/*%if sortKey == @com.linecorp.fortune.constant.ServiceSortKey@NEW */
, IF ( NOW() - INTERVAL 1 WEEK < forum_service.published_at, 1, 0) as is_new
/*%elseif sortKey == @com.linecorp.fortune.constant.ServiceSortKey@ANSWER_TIME */
, IF (forum_service_condition.average_answer_time = 0, 12, forum_service_condition.average_answer_time) as answer_time
/*%end*/