티스토리 뷰

mySQL에서 DATE 타입을 저장할 때 년도, 월, 일, 시, 분, 초 까지 저장하는 경우가 많을 것이다.

(default를 NOW()로 때리면 저렇게 저장됨 → ex) 2020-05-05 01:43:00 )

 

그래서 특정 날짜에 대해서 조회를 하고 싶은데 뒤에 시간까지 저장되기 때문에 값을 제대로 못불러오는 경우가 생긴다.

 

SELECT * FROM example WHERE eDate = NOW();	-- example테이블과 eDate는 지금 임의로 만든 폰테이블임

이렇게 조회했는데 년월일은 동일해도 시간은 동일하지 않아 결과가 불러와지지 않는 것이다.

 

그럼 mySQL에서 날짜만 비교해 해당 값을 들고올 수 있는 방법은 무엇일꺄

별 것 없다.

반응형

- DATE() 함수 이용하기

SELECT * FROM example WHERE DATE(eDate) = DATE(NOW());

DATE()로 감싸주면 된다.

그럼 자동으로 yyyy-mm-dd값만 반환된다.

 

특정 날짜를 조회하고 싶다면?

SELECT * FROM example WHERE DATE(eDate) = '2021-05-02';

이렇게 해도 됨


글 적으면서 생각난건데 특정 년도만. 월만,  요일만 검색하고 싶다면 DATE_FORMAT()을 이용해서 검색해도 되지 않으려나....??

 

2021년만 검색하고 싶다면

SELECT * FROM example WHERE DATE_FORMAT(eDate,'%Y') = '2021';

 3월만 검색하고 싶다면

SELECT * FROM example WHERE DATE_FORMAT(eDate,'%m') = '03';

SELECT * FROM example WHERE DATE_FORMAT(eDate,'%M') = 'March';

이런 식으로....?

 

사실 mySQL다시 키기 귀찮아서 글로만 남겨놓는거지만... 나중에 해보고 후기를 추가해야겠다!

 

%Y, %m, %M, %d 등... 많은 날짜 지정값이 있다. 해당 내용은 검색창에 mySQL 날짜포맷 이런식으로 검색하면 정보가 많이 나옴

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함