개발은 처음이라 개발새발

[MySQL] 날짜에서 원하는 정보만 추출 DATE_TRUNC() / DATETIME_TRUNC() / TIMESTAMP_TRUNC() 본문

mysql

[MySQL] 날짜에서 원하는 정보만 추출 DATE_TRUNC() / DATETIME_TRUNC() / TIMESTAMP_TRUNC()

leon_choi 2024. 2. 10. 22:44
반응형
DATE_TRUNC('날짜', '남기는 부분') 

DATETIME_TRUNC( '날짜', '남기는 부분')

TIMESTAMP_TRUNC( '날짜', '남기는 부분')

 

※ 추출할 부분  

 

YEAR : 연도 (결과: 해당 연도의 첫날)

MONTH : 월 (결과: 해당 월의 첫날)

DAY : 일 (결과: 해당 날짜의 0시 0분)

WEEK : 주(기본 일요일 시작) (결과: 해당 주차의 첫 날(일))

WEEK(MONDAY) : 주(월요일 시작) (결과: 해당 주차의 첫 날(월))

QUARTER : 분기 (결과: 해당 분기의 첫 날)

HOUR : 시

MINUTE : 분

SECOND : 초

-- 원하는 정보까지만 추출하는 DATE/DATETIME/TIMESTAMP_TRUNC

SELECT
  order_purchase_timestamp,
  TIMESTAMP_TRUNC(order_purchase_timestamp,YEAR) AS YEAR,
  TIMESTAMP_TRUNC(order_purchase_timestamp, QUARTER) AS QUARTER,
  TIMESTAMP_TRUNC(order_purchase_timestamp, MONTH) AS MONTH,
  TIMESTAMP_TRUNC(order_purchase_timestamp, DAY) AS DAY,
  TIMESTAMP_TRUNC(order_purchase_timestamp, WEEK) AS WEEK,
  TIMESTAMP_TRUNC(order_purchase_timestamp, WEEK(MONDAY)) AS WEEK_MONDAY,
  TIMESTAMP_TRUNC(order_purchase_timestamp, HOUR) AS HOUR,
  TIMESTAMP_TRUNC(order_purchase_timestamp, MINUTE) AS MINUTE,
  TIMESTAMP_TRUNC(order_purchase_timestamp, SECOND) AS SECOND
FROM`olist.olist_orders`
WHERE
  DATE(order_purchase_timestamp) = '2017-11-26' --일요일

반응형

'mysql' 카테고리의 다른 글

[MySQL] SQL에서 REPLACE()함수  (0) 2024.02.11
[MySQL] SQL에서 EXCEPT()  (0) 2024.02.11
EXTRACT() 날짜데이터 추출하기  (0) 2024.02.10
DATE() / DATETIME() / TIMESTAMP()  (0) 2024.02.10
MySQL 윈도우함수 간단 설명  (0) 2023.06.26