개요
회사 업무 중 어제 날짜의 시작일자(YYYY-MM-DD 00:00:00)와 종료일자(YYYY-MM-DD 23:59:59)를 SELECT절에서 한번에 구하는 쿼리를 구현하게 됐다.
구현하다보니 생각보다 쿼리가 복잡하여 기록 및 공유 하고자 한다.
본 글에서는 어제 날짜의 시작시간과 종료시간을 나눠서 설명한다.
어제 날짜의 시작시간 구하기 (YYYY-MM-DD 00:00:00)
1번. date_sub(now(), interval 1 day)) : 현재시간에서 하루를 뺀 날짜 값을 구한다.
date_sub(now(), interval 1 day))
2번. YYYY-MM-DD HH:MM:SS 형태로 변경한다
cast(date(date_sub(now(), interval 1 day)) as datetime)
어제 날짜의 종료 시간 구하기 (YYYY-MM-DD 23:59:59)
1번. TIMEDIFF 함수로 현재 날짜에서 시:분:초 뽑는다.
- TIMEDIFF(A,B) A시간과 B시간 사이의 차이를 구하는 함수
TIMEDIFF(NOW(), CAST(DATE(NOW()) AS DATETIME))
2번. subtime 함수를 사용해서 오늘 날짜에서 [1번, 시:분:초] 만큼 빼주고 (그럼 오늘 날짜의 YYYY:MM:DD 00:00:00이 되는데) 여기서 1초만큼 빼준다.
- subtime(A,B) : A에서 B만큼 시간을 빼주는 함수
subtime(now -1, TIMEDIFF(NOW(), CAST(DATE(NOW()) AS DATETIME)))
'Study > Database' 카테고리의 다른 글
[Mysql] IFNULL 과 NULLIF 차이 (0) | 2022.11.23 |
---|---|
[Mysql] group by 그룹 내 특정 컬럼 값들을 한번에 조회하기 (group_concat) (0) | 2022.07.20 |
[Mysql] insert시 데이터가 이미 존재하면 update 하는 방법 (upsert문) (0) | 2022.07.15 |
[MySql] 조회 결과 레코드 번호 매기기 (0) | 2022.07.15 |
[Oracle] 윈도우에 Oracle 11g 설치하기 (0) | 2022.07.15 |