19.날짜 함수

Edit

19.1now

문법

now()

함수가 호출되는 시점의 현재 시스템 시각을 반환합니다.

사용 예

now() => Sat Sep 28 23:58:41 KST 2013

19.2ago

문법

ago("시간단위")

현재 시간 기준으로 입력된 시간 단위값 만큼의 이전 시간을 반환합니다.

사용 예

1) 현재 시스템 시각 2019-04-26 14:31:21에서 3일 전의 시각을 반환

ago("3d") => 2019-04-23 14:31:21

2) 현재 시스템 시각 2019-04-26 14:31:21에서 5분 전의 시각을 반환

ago("5m") => 2019-04-26 14:26:21

3) 현재 시스템 시각 2019-04-26 14:31:21에서 13시간 전의 시각을 반환

ago("13h") => 2019-04-26 01:31:21

4) 현재 시스템 시각 2019-04-26 14:31:21에서 1년 전의 시각을 반환

ago("1y") => 2018-04-26 14:31:21

19.3datetrunc

문법

datetrunc(시간날짜표현식, 시간단위)

지정된 시간날짜 표현식을 지정된 시간단위로 나누어 반환합니다.

시작날짜표현식

date 타입을 반환하는 표현식을 입력합니다. date 타입 이외의 입력이 들어오면 함수 결과로 null을 반환합니다.

시간 단위

아래의 지시자를 이용하여 시간 단위를 지정합니다. 예를 들어, 1분 단위인 경우 1m을 지정합니다.

표 19-1시간 단위 지시자

지시자

의미

y

mon

w

d

h

m

s

사용 예

1) 2014-07-14 11:13:23을 1분 단위로 절사

datetrunc(date("2014-07-14 11:13:23", "yyyy-MM-dd HH:mm:ss"),"1m") 
=> 2014-07-14 11:13:00+0900

2) 2014-07-14 11:13:23을 5분 단위로 절사

datetrunc(date("2014-07-14 11:13:23", "yyyy-MM-dd HH:mm:ss"),"5m") 
=> 2014-07-14 11:10:00+0900

3) 2014-07-14 11:13:23을 1개월 단위로 절사

datetrunc(date("2014-07-14 11:13:23", "yyyy-MM-dd HH:mm:ss"),"1mon") 
=> 2014-07-01 00:00:00+0900

19.4dateadd

문법

dateadd(날짜표현식, 유형, 시간)

날짜 덧셈을 수행합니다.

날짜표현식

date 타입을 반환하는 표현식을 입력합니다. date 타입 이외의 입력이 들어오면 함수 결과로 null을 반환합니다.

유형

표 19-2 시간 유형 지시자 중 하나를 문자열로 지정합니다.

시간

int 타입의 상수로 더하거나 뺄 시간을 지정합니다.

표 19-2시간 유형 지시자

지시자

의미

year

mon

day

hour

min

sec

msec

밀리초

사용 예

1) 잘못된 원본 표현식이 입력된 경우

dateadd(null, "sec", 10) => null
dateadd("invalid", "sec", 10) => null

2) 2013-09-28 11:47:00 기준으로 1년 후

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "year", 1) 
    => Sun Sep 28 11:47:00 KST 2014

3) 2013-09-28 11:47:00 기준으로 한 달 전

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "mon", -1) 
    => Wed Aug 28 11:47:00 KST 2013

4) 2013-09-28 11:47:00 기준으로 3일 전

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "day", -3) 
    => Wed Sep 25 11:47:00 KST 2013

5) 2013-09-28 11:47:00 기준으로 2시간 후

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "hour", 2) 
    => Sat Sep 28 13:47:00 KST 2013

6) 2013-09-28 11:47:00 기준으로 23분 후

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "min", 23) 
    => Sat Sep 28 12:10:00 KST 2013

7) 2013-09-28 11:47:00 기준으로 10초 후

dateadd(date("2013-09-28 11:47:00", "yyyy-MM-dd HH:mm:ss"), "sec", 10) 
    => Sat Sep 28 11:47:10 KST 2013

19.5datediff

문법

datediff(시작날짜표현식, 끝날짜표현식, 단위)
시작날짜표현식

date 타입을 반환하는 표현식을 입력합니다. date 타입 이외의 입력이 들어오면 함수 결과로 null을 반환합니다.

끝날짜표현식

date 타입을 반환하는 표현식을 입력합니다. date 타입 이외의 입력이 들어오면 함수 결과로 null을 반환합니다.

단위

표 19-2 시간 유형 지시자 중 하나를 문자열로 지정합니다.

사용 예

1) 2014년 9월 29일에서 2013년 9월 29일의 차이를 연 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "year") => 1

2) 2014년 9월 29일에서 2013년 9월 29일의 차이를 월 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "mon") => 12

3) 2014년 9월 29일에서 2013년 9월 29일의 차이를 일 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "day") => 365

4) 2014년 9월 29일에서 2013년 9월 29일의 차이를 시간 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "hour") => 8760

5) 2014년 9월 29일에서 2013년 9월 29일의 차이를 분 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "min") => 525600

6) 2014년 9월 29일에서 2013년 9월 29일의 차이를 초 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "sec") => 31536000

7) 2014년 9월 29일에서 2013년 9월 29일의 차이를 밀리초 단위로 계산

datediff(date("2013-09-29", "yyyy-MM-dd"), 
         date("2014-09-29", "yyyy-MM-dd"), "msec") => 31536000000

8) 잘못된 입력값이 들어오는 경우

datediff(null, date("2014-09-29", "yyyy-MM-dd"), "sec") => null
datediff(date("2013-09-29", "yyyy-MM-dd"), null, "min") => null
datediff("invalid", date("2014-09-29", "yyyy-MM-dd"), "min") => null

19.6datepart

문법

datepart(날짜표현식, 유형지시자)

날짜표현식을 평가한 날짜 값으로부터 유형지시자에 해당하는 값을 추출합니다. 유형지시자 매개변수는 상수 문자열만 사용할 수 있습니다. 유형 지시자의 목록은 다음과 같습니다.

표 19-3유형 지시자

유형 지시자

타입

설명

예시 값

century

int

세기

21

day

int

날짜 (1~31)

12

decade

int

연도를 10으로 나눈 몫

201

dow

int

한 주 내에서의 날 수.

일요일 (0), 토요일 (6)

1

doy

int

한 해 내에서의 날 수

163

epoch

long

1970년 1월 1일부터 날짜까지 경과한 초

1497269156

hour

int

24시간 기준 시간 (0-23)

21

isodow

int

ISO 8601 기준 한 주 내에서의 날 수. 월요일 (1), 일요일 (7)

1

isoyear

int

ISO 8601 기준 한 해의 첫 월요일을 새해 첫 날로 인식한 년도

2017

microseconds

int

초를 포함한 마이크로초

56371000

millenium

int

밀레니엄 (천 년 단위)

3

milliseconds

int

초를 포함한 밀리초

56371

min, minute

int

분 (0-59)

5

mon, month

int

월 (1-12)

6

msec

int

초를 포함하지 않은 밀리초

377

quarter

int

분기 (1-4)

2

sec, seconds

int

초 (0-59)

56

timezone

int

UTC 기준 시간대 (초)

32400

timezone_hour

int

UTC 기준 시간대 (시)

9

timezone_minute

int

UTC 기준 시간대 (분)

0

week

int

ISO 8601 기준 한 해의 첫 월요일을 새해 첫 날로 인식한 주의 수

24

year

int

년도

2017

19.7daterange

문법

daterange(시작날짜표현식, 끝날짜표현식, [시간단위])

시작날짜표현식의 값으로부터 끝날짜표현식에 이르기 전까지 시간단위만큼 건너뛰면서 날짜 값을 생성하여 리스트로 반환합니다. 즉, 반환하는 리스트에 끝날짜표현식의 값은 포함되지 않습니다. 시간단위를 생략하는 경우 1일로 지정됩니다. 시작날짜표현식이나 끝날짜표현식이 null 이거나 날짜 타입이 아닌 경우에는 null을 반환합니다.

시스템 과부하를 방지하기 위해 daterange 함수의 결과가 10만건을 초과하면 예외를 발생시켜 쿼리를 실패시킵니다.

사용 예

1) 2015년 9월 1일부터 2015년 9월 7일까지 연속하는 날짜의 리스트를 반환

daterange(date("20150901", "yyyyMMdd"), date("20150908", "yyyyMMdd")) => 
["2015-09-01 00:00:00+0900","2015-09-02 00:00:00+0900","2015-09-03 00:00:00+0900","2015-09-04 00:00:00+0900","2015-09-05 00:00:00+0900","2015-09-06 00:00:00+0900","2015-09-07 00:00:00+0900"]

2) 2015년 9월 1일부터 2015년 9월 2일 이전까지 4시간 단위로 연속하는 날짜 값의 리스트를 반환

daterange(date("20150901", "yyyyMMdd"), date("20150902", "yyyyMMdd"), "4h") => 
["2015-09-01 00:00:00+0900","2015-09-01 04:00:00+0900","2015-09-01 08:00:00+0900","2015-09-01 12:00:00+0900","2015-09-01 16:00:00+0900","2015-09-01 20:00:00+0900"]

3) 잘못된 인자가 들어오는 경우

daterange("20150901", "20150908") => null

19.8epoch

문법

epoch(정수표현식)

1970년 1월 1일 이후 경과된 초 또는 밀리초를 입력받아 date 타입으로 변환합니다. 매개변수 값을 초 단위로 해석했을 때 9999년 1월 1일보다 크다면 밀리초로 해석합니다.

정수표현식

초 또는 밀리초 단위의 자연수를 반환하는 표현식을 입력합니다.

사용 예

1) 1435196373492 밀리초를 date 타입으로 변환

epoch(1435196373492) => 2015-06-25 10:39:33+0900
Count of comments [0]