[SQL] DATE_ADD 등 날짜 관련 SQL

Jung In Lee·2024년 12월 21일
0

날짜

DATE_ADD

  • 날짜 관련해서 일수를 더하고 빼는 함수이다
DATE_ADD(날짜, INTERVAL 더하거나 뺄 값 단위) AS 별칭

DATE_ADD('2024-12-21' INTERVAL 1 DAY) AS DATE

위 함수를 실행하면

2024-12-22 00:00:00

이 나오게된다.

이는 DateFormat함수로 변환해주면 이쁘게 포장된다.

DATE_FORMAT(DATE, '%Y-%m-%d')
2024-12-22

DATE_SUB

  • 자매품 DATE_SUB함수도 있다. 양식은 같다.
DATE_SUB('2024-12-21', INTERVAL 1 DAY)
2024-12-20

DATEDIFF

  • 각 날짜의 차이를 구하는 함수이다.
DATEDIFF(날짜, 날짜)

Window 함수

  • 좀 더 정교하게 추출할수있는 함수다.
  • 현재 열을 포함한 이전 6일 사이의 범위에 대해서 합을 구하는 쿼리이다.
  • over 이후 조건을 적는다.
select sum(sum_amount) over w as amount
from cte_sum
window w as (order by visited_on range between interval 6 day preceding and current row)

offset

  • 데이터의 어디부터 어디까지 범위를 나타냄.
  • 0부터 시작하는듯.

distinct

  • 함수가 아님.

with (table_name) as (subquery)

  • 여러 테이블을 표시할경우 ',' 로 나열한다.
with cte_sum as(
    select visited_on,
    sum(amount) as sum_amount
    from customer
    group by visited_on
),
cte_all as(
    select visited_on,
    sum(sum_amount) over w as amount,
    round(sum(sum_amount) over w / 7, 2) as average_amount
    from cte_sum
    window w as (order by visited_on range between interval 6 day preceding and current row)
)

출처

[MYSQL] DATE_FORMAT
[MYSQL] DATE_ADD, DATE_SUB

profile
Spring Backend Developer

0개의 댓글