source

mySQL date시간 범위 쿼리 문제

manycodes 2023. 10. 18. 22:53
반응형

mySQL date시간 범위 쿼리 문제

간단한 질문이 있습니다.datetime 열이 포함된 감사 테이블(예: 2012-03-27 00:00:00)을 가지고 있습니다. 날짜가 두 날짜 사이에 있으면 행 집합을 반환하는 mySQL 쿼리를 만들고 있습니다.

지금까지 제 질문은 다음과 같습니다.

SELECT * FROM util_audit WHERE DATED >= DATE(03/15/2012) AND DATED <= DATE(03/31/2012);

사용만 하면

SELECT * FROM util_audit WHERE DATED >= DATE(03/15/2012); 

그들이 이번 주에 데이트를 했기 때문에 제 모든 기록을 돌려줄 것입니다.

저도 해봤습니다.

SELECT * FROM util_audit WHERE DATED >= '02/15/2012 00:00:00' AND DATED <= '03/31/2012 00:00:00';

아무것도!이번 달 27일부터 오늘까지 데이트한 걸 알면 열이 하나도 없어요.내가 뭘 빠트렸나요?왜 두번째 날짜를 추가할때는 안되나요?뭔가 간과하고 있는 것 같아요.

시도:

SELECT * FROM util_audit WHERE `DATED` BETWEEN "2012-03-15" AND "2012-03-31";

여기에는 정확한 종료 날짜를 사용하여 파악해야 하는 몇 가지 에지 사례가 있습니다. 만약 31일의 항목이 무시되지 않는다면,

SELECT * FROM util_audit 
WHERE DATED >= '2012-02-15 00:00:00' AND DATED <= '2012-03-31 23:59:59';

SELECT * FROM util_audit 
WHERE DATED BETWEEN '2012-02-15 00:00:00' AND '2012-03-31 23:59:59';

또는 종료 날짜를 앞당겨 다음을 사용할 수 있습니다.

SELECT * FROM util_audit 
WHERE DATED >= '2012-02-15 00:00:00' AND DATED < '2012-04-01';

SELECT * FROM util_audit 
WHERE DATED BETWEEN '2012-02-15 00:00:00' AND '2012-04-01';

방금 이걸 제가 발견했으니 다른 분들이 이 페이지를 찾으시면 도움이 되시길 바랍니다.

MySql의 날짜는 형식으로 표시되는 것으로 알고 있습니다.yyyy-MM-dd hh:mm:ss따라서 이 작업을 수행해야 합니다.

SELECT * FROM util_audit 
WHERE DATED >= '2012-02-15 00:00:00' AND DATED <= '2012-03-31 00:00:00';

아니면 더 좋음:

SELECT * FROM util_audit 
WHERE DATED BETWEEN '2012-02-15 00:00:00' AND '2012-03-31 00:00:00';

언급URL : https://stackoverflow.com/questions/9935690/mysql-datetime-range-query-issue

반응형