날짜별 엔트리 선택 - >= NOW(), MySQL
이벤트 일정표가 있는데 날짜가 오늘보다 크거나 같은 이벤트를 선택하려고 합니다.다음 SELECT 문을 사용하면 나중의 이벤트만 검색됩니다(> NOW()).
<?php
$db->query("SELECT * FROM events WHERE event_date >= NOW()");
?>
현재 또는 미래의 모든 이벤트를 선택하려면 어떻게 해야 합니까?
감사해요.
다음을 찾고 있습니다.
$db->query("SELECT * FROM events WHERE event_date >= CURDATE()");
또는:
$db->query("SELECT * FROM events WHERE event_date >= CURRENT_DATE()");
이 쿼리를 사용하는 이유:
SELECT * FROM events WHERE event_date >= NOW()
...Now()에는 날짜와 시간이 포함되어 있기 때문에 미래의 기록을 반환합니다.그리고 해당 시간 부분은 [function or triggering] 문이 실행되기 시작한 시간을 나타냅니다.즉, DATTIME 데이터 유형에서 하루의 시작은 다음과 같습니다.2010-06-24 00:00:00
(YYYY-MM-DD HH:MM:SS, micro second precision으로), NOW()는 다음과 같은 것을 보여줍니다.2010-06-24 14:24:31
...
옵션은 다음과 같습니다.
SELECT * FROM events WHERE event_date >= DATE(NOW())
SELECT * FROM events WHERE event_date >= DATE(CURRENT_TIMESTAMP)
SELECT * FROM events WHERE event_date >= CURRENT_DATE()
SELECT * FROM events WHERE event_date >= CURRDATE()
당신도 할 수 있습니다.
<?php
$db->query("SELECT * FROM events WHERE UNIX_TIMESTAMP(event_date) >= UNIX_TIMESTAMP(NOW())");
?>
CURTIME()을 사용하는 것보다 더 정확한 방법은 날짜뿐만 아니라 시간을 사용하는 경우입니다.
시간이 아닌 날짜에만 관심이 있는 경우 CURDATE()를 사용합니다.NOW()
.
물론 동의어를 대신 사용할 수도 있습니다.CURRENT_DATE
(그 뒤에 괄호가 있건 없건) 하지만 내가 말한 문서들은CURDATE
첫 번째 철자로 (-).
당신의 문제는 지금이 매우 정확하다는 것입니다.그래서 오늘과 그 이전의 날짜들은 하루의 시작에 시작했기 때문입니다.
사용 방법:
select * from events where datediff(event_date, now()) >= 0;
CURDATE와 NOW의 차이점은 다음과 같습니다.
mysql> select CURDATE();
+------------+
| CURDATE() |
+------------+
| 2017-03-17 |
+------------+
1 row in set (0.03 sec)
mysql> select NOW();
+---------------------+
| NOW() |
+---------------------+
| 2017-03-17 09:04:45 |
+---------------------+
1 row in set (0.00 sec)
나는 항상 정확하게 하기 위해 NOW를 사용합니다.
언급URL : https://stackoverflow.com/questions/3114769/selecting-entries-by-date-now-mysql
'programing' 카테고리의 다른 글
MySQL 타임스탬프에 NULL 삽입 (0) | 2023.10.24 |
---|---|
iframe이 로드되었는지 여부를 확인하려면 어떻게 해야 합니까? (0) | 2023.10.24 |
jQuery 객체를 어떻게 비교하시겠습니까? (0) | 2023.10.24 |
ngIf - 확인 후 식이 변경되었습니다. (0) | 2023.10.24 |
void* 대신 intptr_t를 사용? (0) | 2023.10.24 |