SQL

JIYOUNG KIM·2022년 4월 17일
0

SQL

목록 보기
1/6
post-thumbnail

SQL 문법 정리

date_trunc(text, timestamp)

  • 첫번째 인자로 [year, month, day, hour, minute, secone, millisecone]와 같은 날짜 키워드가 옴
  • timestamp로 지정한 시점의 text 키워드까지의 값을 0(default) 처리 함
  • ex) select date_trunc('month', '2019-04-05 12:12:12::timestamp') → 2019-04-01 00:00:00

특정일자의 요일 구하고 싶을 때

datename(weekday, getdate())

  • SQL 서버의 언어설정에 따라 한국어일 경우, '월요일' 이렇게 표시되는데 영어는 'Monday' 이렇게 나옴

datepart(weekday, getdate())

  • 일요일을 시작으로 순서대로 1 ~ 7 까지 표시
SELECT CASE WHEN(DATEPART(WEEKDAY, GETDATE()) = '1') THEN '(일)'

SELECT DATEPART(YEAR, '2010-01-05 22:11:00')
> 2010

SELECT DATEPART(MONTH, '2010-01-05 22:11:00')
> 1

SELECT DATEPART(DAY, '2010-01-05 22:11:00')
> 5

SELECT DATEPART(HOUR, '2010-01-05 22:11:00')
> 22

SELECT DATEPART(MI, '2010-01-05 22:11:00')
> 11

extract(field, source)

  • field : 날짜/시간 값에서 추출할 필드 지정
    • CENTURY : 세기(21세기, 20세기)
    • DAY : 1~31에 해당하는 해당 월의 일
    • DOW : 일요일(0) ~ 토요일(6)까지 반환하는 값
    • DOY : 1~366 까지 해당하는 연중일수
    • EPOCH : 1970년 1월 1일 00:00:00 UTC 부터 현재까지의 초
    • HOUR : 0 ~ 23 에 해당하는 시간정보
    • MILLISECONDS : 1/1000에 해당하는 밀리초
    • MINUTE : 0 ~ 59에 해당하는 분 정보
    • MONTH : 1 ~ 12에 해당하는 월 정보
    • QUARTER : 1(1~3월), 2(4~6월), 3(7~9월), 4(10~12월) 분기로 나뉘어지는 정보
    • SECOND : 0 ~ 59에 해당하는 초 정보
    • WEEK : 주 정보 (1월 1일 : 1, 12월 31일: 52~53)
    • YEAR : 연도 정보
  • source : timestamp 혹은 interval 타입의 값
select extract('CENTURY'      from '2021-02-03 15:23:22.23242'::timestamp); -- 21
select extract('DAY'          from '2021-02-03 15:23:22.23242'::timestamp); -- 3
select extract('DOW'          from '2021-02-03 15:23:22.23242'::timestamp); -- 3
select extract('DOY'          from '2021-02-03 15:23:22.23242'::timestamp); -- 34
select extract('EPOCH'        from '2021-02-03 15:23:22.23242'::timestamp); -- 1612365802.23242
select extract('HOUR'         from '2021-02-03 15:23:22.23242'::timestamp); -- 15
select extract('MILLISECONDS' from '2021-02-03 15:23:22.23242'::timestamp); -- 22232.42
select extract('MINUTE'       from '2021-02-03 15:23:22.23242'::timestamp); -- 23
select extract('MONTH'        from '2021-02-03 15:23:22.23242'::timestamp); -- 2
select extract('QUARTER'      from '2021-02-03 15:23:22.23242'::timestamp); -- 1
select extract('SECOND'       from '2021-02-03 15:23:22.23242'::timestamp); -- 22.23242
select extract('WEEK'         from '2021-02-03 15:23:22.23242'::timestamp); -- 5
select extract('YEAR'         from '2021-02-03 15:23:22.23242'::timestamp); -- 2021

JOIN

  • INNER JOIN

    • 일반적인 JOIN
  • LEFT JOIN

  • RIGHT JOIN

  • FULL OUTER JOIN

from 'join할 테이블 이름_1'
	inner join 'join할 테이블 이름_2'
    on 'join할 조건'
profile
데이터분석가

0개의 댓글