반응형
반응형
해당 글에서는 데이터베이스 PostgreSQL을 기반으로 날짜함수(Date Function)에 대해 알아봅니다.
1) 날짜함수(Date Function)
💡 날짜함수(Date Function)
- 데이터베이스에서 ‘날짜’와 관련된 작업을 수행하는 데 사용되는 함수입니다. 일반적으로 날짜 값을 생성, 변환하거나 날짜와 관련된 정보를 추출하는 데 사용됩니다.
- 날짜함수를 사용하면 연도, 월, 일, 시간, 분, 초 등의 다양한 요소를 추출하거나 계산할 수 있습니다. 또한 두 날짜 사이의 차이를 계산하거나 날짜에 일정한 시간 간격을 더하거나 뺄 수도 있습니다
2) 날짜함수의 구조
💡 일반적인 날짜함수의 구조는 FUNCTION_NAME, date_expression, parameters로 구성되어 있습니다.
FUNCTION_NAME(date_expression, parameters)
[ 날짜함수의 구조 설명 ]
- FUNCTION_NAME: 사용하려는 날짜 함수의 이름을 나타냅니다.
- date_expression: 날짜 값을 나타내는 표현식이나 필드를 지정합니다.
- parameters: 필요한 경우 함수에 전달할 추가 매개변수를 지정합니다.
3) 날짜 함수 종류 -1 : 기본
1. 날짜함수 요약
함수 이름 | 분류 | 리턴 타입 | 설명 | 예시 |
NOW | 값 반환 | timestamp | 현재 날짜와 시간을 반환합니다. | SELECT NOW() — 2023-09-16 05:52:59.574844 +00:00 |
CURRENT_DATE | 값 반환 | date | 현재 날짜를 반환합니다. | SELECT CURRENT_DATE — 2023-09-16 |
CURRENT_TIME | 값 반환 | time | 현재 시간을 반환합니다. | SELECT CURRENT_TIME — 05:50:57.250266 +00:00 |
CURRENT_TIMESTAMP | 값 반환 | timestamp | 현재 타임스탬프를 반환합니다. | SELECT CURRENT_TIMESTAMP — 2023-09-16 05:51:16.218539 +00:00 |
LOCALTIME | 값 반환 | time | 현재 지역 시간을 반환합니다. | SELECT LOCALTIME — 05:51:40 |
LOCALTIMESTAMP | 값 반환 | timestamp | 현재 지역 타임스탬프를 반환합니다. | SELECT LOCALTIMESTAMP — 2023-09-16 05:52:06.592954 |
AGE | 값 추출 | interval | 두 날짜 간의 차이를 계산하여 연령을 반환합니다. | SELECT AGE('2017-01-01','2011-06-24'); -- 5 years 6 mons 7 days |
EXTRACT | 값 추출 | double precision | 주어진 날짜 또는 타임스탬프에서 특정 요소를 추출합니다. | SELECT EXTRACT(YEAR FROM TIMESTAMP '2016-12-31 13:30:15'); -- 2016 |
DATE_PART | 값 추출 | double precision | 주어진 날짜 또는 타임스탬프의 특정 요소 값을 반환합니다. | SELECT date_part('century',TIMESTAMP '2023-09-16'); -- 21 |
DATE_TRUNC | 값 추출 | timestamp | 주어진 날짜 또는 타임스탬프를 특정 단위까지 잘라낸 값을 반환합니다. | SELECT DATE_TRUNC('hour', TIMESTAMP '2023-09-16 17:02:30'); -- 2023-09-16 17:00:00.000000 |
TO_DATE | 값 변환 | date | 문자열을 날짜로 변환합니다. | SELECT TO_DATE('20230916', 'YYYYMMDD'); -- 2023-09-16 |
TO_TIMESTAMP | 값 변환 | timestamp | 문자열을 타임스탬프로 변환합니다. | SELECT TO_TIMESTAMP('2023-09-16 12:34:56', 'YYYY-MM-DD HH24:MI:SS'); -- 2023-09-16 12:34:56 |
[ 더 알아보기 ]
💡 CURRENT와 LOCAL의 차이점은 무엇인가?
- CURRENT_TIME 함수는 현재 시간을 ‘UTC 기준’으로 반환합니다.
- LOCALTIME 함수는 현재 시간을 ‘사용자의 지역 시간대’로 반환합니다.
💡 지역 시간대는 뭘까?
- 특정 지역에서 사용하는 Timezone 기반의 표준 시간대를 의미합니다.
💡 DATE/TIME 타입과 TIMESTAMP는 무슨 차이가 있을까?
- DATE/TIME 타입과 TIMESTAMP는 모두 날짜와 시간을 저장하는 데 사용되는 데이터 유형입니다. 그러나 TIMESTAMP는 보다 정확한 시간 정보를 저장할 수 있는 반면, DATE/TIME은 날짜와 시간의 부분적인 정보를 저장하는 데 사용됩니다.
- 따라서, TIMESTAMP는 더 상세한 시간 정보가 필요한 경우에 유용하게 사용될 수 있습니다.
2. NOW() 함수
💡 NOW() 함수
- 현재 날짜와 시간을 반환하는 함수입니다. 이 함수는 데이터베이스 서버의 현재 시간을 기준으로 합니다.
- 해당 함수는 TIMESTAMP 타입으로 반환합니다.
-- 사용예시 -1
SELECT NOW(); -- 2023-09-16 08:05:21.332784 +00:00
-- 사용예시 -2
SET TIMEZONE='Asia/Seoul';
SELECT NOW(); -- 2023-09-16 17:06:04.052343 +09:00@
-- 사용예시 -3
SELECT NOW()::TIMESTAMP; -- 2023-09-16 08:13:28.206354
[ 더 알아보기 ]
💡 SET timezone = 'Asia/Seoul';으로 타임존을 변경했는데 이전으로 돌아가는 방법은?
- 해당 명령어는 툴 내에서만 유효하므로 종료하였다가 다시키면 이전의 TIMEZONE으로 돌아갑니다.
💡 TIMEZONE을 고정하는 방법은?
- ALTER DATABASE database_name SET timezone = 'Asia/Seoul'; 명령어를 입력합니다. TIMEZONE 지정은 데이터베이스를 기준으로 각각 지정이 가능합니다.
[ 더 알아보기 ]
💡 NOW() 함수의 캐스팅 가능한 타입
데이터 유형 | 예시 |
DATE | SELECT NOW()::DATE; |
TIME | SELECT NOW()::TIME; |
TIMESTAMP | SELECT NOW()::TIMESTAMP; |
3. CURRENT_DATE 함수
💡 CURRENT_DATE 함수
- 현재 날짜를 반환해 주는 함수입니다. 이 함수를 사용하면 현재 날짜를 다른 함수나 연산에 활용할 수 있습니다.
- 반환 값으로 DATE 타입을 반환합니다
-- 기본 구조
CURRENT_DATE
-- 예시-1
SELECT CURRENT_DATE -- 2023-09-16
-- 예시-2
SELECT AGE('1985-12-31', CURRENT_DATE); -- -37 years -8 mons -16 days 0 hours 0 mins 0.0 secs
4. CURRENT_TIME 함수
💡 CURRENT_TIME 함수
- 현재 시간을 반환해주는 함수입니다. 이 함수를 사용하면 현재 시간을 다른 함수나 연산에 활용할 수 있습니다.
- 반환 값으로 TIME 타입을 반환합니다.
💡 기본구조의 인자
- precision : 밀리세컨드 기준으로 반환 값의 표기할 소수점 자리수를 의미합니다.
-- 기본 구조 -1
CURRENT_TIME(precision)
-- 기본 구조
CURRENT_TIME
-- 예시 -1
SELECT CURRENT_TIME; -- 06:57:10.626737 +00:00
-- 예시 -1
SELECT CURRENT_TIME(0); -- 06:57:26 +00:00
-- 예시 -2
SELECT CURRENT_TIME(3); -- 06:55:16.854 +00:00
5. CURRENT_TIMESTAMP() 함수
💡 CURRENT_TIMESTAMP() 함수
- SQL에서 현재 날짜와 시간을 반환해 주는 함수입니다. 이 함수는 데이터베이스 서버의 현재 시간을 반환합니다.
- 반환 값으로 TIMESTAMP 타입으로 반환합니다.
💡 기본구조의 인자
- precision : 밀리세컨드 기준으로 반환 값의 표기할 소수점 자리수를 의미합니다.
-- 기본 구조 -1
CURRENT_TIMESTAMP(precision)
-- 기본 구조
CURRENT_TIMESTAMP
-- 예시 -1
SELECT CURRENT_TIMESTAMP; -- 2023-09-16 07:07:55.348506 +00:00
-- 예시 -1 :밀리세컨드를 제거
SELECT CURRENT_TIMESTAMP(0); -- 2023-09-16 07:08:10 +00:00
-- 예시 -2 : 밈리세컨드를 셋째자리까지 출력
SELECT CURRENT_TIMESTAMP(3); -- 2023-09-16 07:08:36.567 +00:00
-- 예시 -3 : TIME ZONE을 한국시간으로 지정
SELECT *current_timestamp* AT TIME ZONE 'Asia/Seoul' AS KOREA_TIMESTAMP;
[ 더 알아보기 ]
💡 현재 시간이랑 차이가 있는데 왜 그런 걸까? 현재시간은 16시인데 06으로 표기되는 이유는?
- SQL에서 데이터베이스 서버의 현재 날짜와 시간을 반환합니다. 이 함수는 데이터베이스 서버의 시간대를 기준으로 현재 시간을 반환하는데, 이 시간대는 서버 설정에 따라 다를 수 있습니다.
💡 한국시간으로 반환을 받고 싶은데 어떻게 해야 할까?
- SELECT current_timestamp AT TIME ZONE 'Asia/Seoul' AS KOREA_TIMESTAMP; 를 통해서 한국시간을 반환받습니다.
6. LOCALTIME() 함수
💡 LOCALTIME() 함수
- 현재 로컬 시간을 반환해 주는 함수입니다. 이 함수는 프로그램이 실행되는 시스템 또는 장치의 시간대를 기준으로 현재 시간을 반환합니다.
- 해당 함수는 TIME 타입으로 값을 반환합니다.
💡 기본구조의 인자
- precision : 생략하려는 밀리세컨드의 자리수를 의미합니다. default는 6의 값을 갖습니다.
-- 기본구조-1
LOCALTIME(precision)
-- 기본구조-2
LOCALTIME
-- 예시-1
SELECT LOCALTIME; -- 07:44:28
-- 예시-2
SELECT LOCALTIME(2); -- 07:45:00
7. LOCALTIMESTAMP() 함수
💡 LOCALTIMESTAMP() 함수
- 현재 로컬 시간과 날짜를 반환해 주는 함수입니다. 이 함수는 프로그램이 실행되는 시스템 또는 장치의 시간대를 기준으로 현재 시간과 날짜를 반환합니다.
- 해당 함수는 TIMESTAMP 타입으로 값을 반환합니다.
💡 기본구조의 인자
- precision : 생략하려는 밀리세컨드의 자리수를 의미합니다. default는 6의 값을 갖습니다.
-- 기본구조-1
LOCALTIMESTAMP(precision)
-- 기본구조-2
LOCALTIMESTAMP
-- 예시-1
SELECT LOCALTIMESTAMP; -- 2023-09-16 07:47:36.899942
-- 예시-2
SELECT LOCALTIMESTAMP(2); -- 2023-09-16 07:48:15.71
8. AGE() 함수
💡 AGE() 함수
- 두 날짜 사이의 '연령'을 계산하는 함수입니다. 이 함수는 생년월일과 현재 날짜를 비교하여 연령을 반환해 주는 함수입니다
- 반환 값으로 INTERVAL 타입을 반환합니다
💡 기본 구조의 인자
- 첫 번째 인수에서 두 번째 인수를 빼고 결과를 반환합니다.
-- 기본 구조
AGE(timestamp,timestamp);
-- 예시 -1
SELECT AGE('2017-01-01','2011-06-24'); -- 5 years 6 mons 7 days
-- 예시 -2
SELECT current_date, AGE(timestamp '2000-01-01'); -- 2017-03-20 | 17 years 2 mons 19 days
9. EXTRACT() 함수
💡 EXTRACT() 함수
- 날짜 또는 시간 값에서 특정 구성 요소를 추출하는 데 사용됩니다.
- 이 함수는 다양한 구성 요소를 추출할 수 있으며, 예를 들어 연도, 월, 일, 시간, 분, 초 등을 추출할 수 있습니다.
- 해당 함수는 DOUBLE 타입으로 값을 반환합니다.
💡 기본구조의 인자
- field: 추출하려는 필드의 이름을 의미합니다
- source: 추출 대상의 구조이며 TIMESTAMP 혹은 INTERVAL 값을 가집니다.
- value: 추출하려는 값입니다.
-- 기본구조
EXTRACT(field FROM source, value)
field 값 | TIMSTAMP | INTERVAL |
CENTURY | 세기 | 세기의 수 |
DAY | 월의 날짜 (1-31) | 일 수 |
DECADE | 연도를 10으로 나눈 십년 | TIMESTAMP과 동일 |
DOW | 일요일 (0)부터 토요일 (6)까지의 요일 | 없음 |
DOY | 1부터 366까지의 연중 날짜 | 없음 |
EPOCH | 1970-01-01 00:00:00 UTC부터의 초 단위 시간 | 간격의 총 초 수 |
HOUR | 시간 (0-23) | 시간 수 |
ISODOW | ISO 8601에 따른 요일 월요일 (1)부터 일요일 (7)까지 | 없음 |
ISOYEAR | ISO 8601 연도의 주 번호 | 없음 |
MICROSECONDS | 초 필드, 소수 부분을 포함하여 1000000 곱한 값 | TIMESTAMP과 동일 |
MILLENNIUM | 천년 | 천년의 수 |
MILLISECONDS | 초 필드, 소수 부분을 포함하여 1000 곱한 값 | TIMESTAMP과 동일 |
MINUTE | 분 (0-59) | 분 수 |
MONTH | 월, 1-12 | 월 수, 나머지 (0-11) |
QUARTER | 연도의 분기 | 분기 수 |
SECOND | 초 | 초 수 |
TIMEZONE | UTC로부터의 시간대 오프셋, 초로 측정 | 없음 |
TIMEZONE_HOUR | 시간대 오프셋의 시간 구성 요소 | 없음 |
TIMEZONE_MINUTE | 시간대 오프셋의 분 구성 요소 | 없음 |
WEEK | 연중 ISO 8601 주 번호 | 없음 |
YEAR | 연도 | TIMESTAMP과 동일 |
-- 예시-1 : TIMESTAMP
SELECT EXTRACT(YEAR FROM TIMESTAMP '2016-12-31 13:30:15'); -- 2016
-- 예시-2 : TIMESTAMP
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2016-12-31 13:30:15'); -- 4
-- 예시-3 : TIMESTAMP
SELECT EXTRACT(MONTH FROM TIMESTAMP '2016-12-31 13:30:15'); -- 12
-- 예시-4 : INTERVAL
SELECT EXTRACT(YEAR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' ) -- 6
-- 예시-5 : INTERVAL
SELECT EXTRACT(HOUR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' ); -- 3
10. DATE_PART() 함수
💡 DATE_PART() 함수
- 주어진 날짜 또는 시간에서 특정 구성 요소를 추출할 때 사용됩니다. 이 함수는 주어진 구성 요소에 해당하는 값을 반환합니다.
- 해당 함수는 DOUBLE 타입으로 값을 반환합니다.
💡 기본구조의 인자
- field : 추출하려는 식별자를 의미합니다.
- source : 추출되는 값을 의미합니다.
-- 기본구조 -1
DATE_PART(field,source)
필드 식별자 | 설명 |
century | 주어진 날짜 또는 시간의 세기를 반환합니다. |
decade | 주어진 날짜 또는 시간의 연대를 반환합니다. |
year | 주어진 날짜 또는 시간의 연도를 반환합니다. |
month | 주어진 날짜 또는 시간의 월을 반환합니다. |
day | 주어진 날짜 또는 시간의 일을 반환합니다. |
hour | 주어진 날짜 또는 시간의 시간을 반환합니다. |
minute | 주어진 날짜 또는 시간의 분을 반환합니다. |
second | 주어진 날짜 또는 시간의 초를 반환합니다. |
microseconds | 주어진 날짜 또는 시간의 마이크로초를 반환합니다. |
milliseconds | 주어진 날짜 또는 시간의 밀리초를 반환합니다. |
dow | 주어진 날짜 또는 시간의 요일을 반환합니다. (일요일부터 토요일까지 0부터 6까지의 값을 가집니다.) |
doy | 주어진 날짜 또는 시간의 연중 일수를 반환합니다. |
epoch | 주어진 날짜 또는 시간의 Epoch 시간을 반환합니다. |
isodow | 주어진 날짜 또는 시간의 ISO 요일을 반환합니다. (월요일부터 일요일까지 1부터 7까지의 값을 가집니다.) |
isoyear | 주어진 날짜 또는 시간의 ISO 연도를 반환합니다. |
timezone | 주어진 날짜 또는 시간의 시간대를 반환합니다. |
timezone_hour | 주어진 날짜 또는 시간의 시간대의 시간을 반환합니다. |
timezone_minute | 주어진 날짜 또는 시간의 시간대의 분을 반환합니다. |
-- 기본구조 -1
DATE_PART(field,source)
-- 예시-1
SELECT date_part('century',TIMESTAMP '2023-09-16'); -- 21
-- 예시-2
SELECT date_part('year',TIMESTAMP '2023-09-16'); -- 2023
-- 예시-3
SELECT date_part('month',TIMESTAMP '2023-09-16'); -- 0
11. DATE_TRUNC() 함수
💡 DATE_TRUNC() 함수
- 날짜 또는 시간을 특정 기간 단위로 잘라내는 함수입니다. 이 함수를 사용하면 날짜 또는 시간 값의 정확한 기간을 유지하면서 불필요한 세부 정보를 제거할 수 있습니다.
- 해당 함수는 TIMESTAMP 타입으로 값을 반환합니다.
💡 기본구조의 인자
- datepart : 잘라내려는 기준 값을 의미합니다.
- field : 잘리는 값을 의미합니다
기준 | 설명 |
millennium | 1000년 단위로 잘라냅니다. |
century | 100년 단위로 잘라냅니다. |
decade | 10년 단위로 잘라냅니다. |
year | 연도 단위로 잘라냅니다. |
quarter | 분기(3개월) 단위로 잘라냅니다. |
month | 월 단위로 잘라냅니다. |
week | 주 단위로 잘라냅니다. |
day | 일 단위로 잘라냅니다. |
hour | 시간 단위로 잘라냅니다. |
minute | 분 단위로 잘라냅니다. |
second | 초 단위로 잘라냅니다. |
milliseconds | 밀리초 단위로 잘라냅니다. |
microseconds | 마이크로초 단위로 잘라냅니다. |
-- 기본구조
date_trunc('datepart', field)
-- 사용예시 -1
SELECT DATE_TRUNC('hour', TIMESTAMP '2023-09-16 17:02:30'); -- 2023-09-16 17:00:00.000000
-- 사용예시 -2
SELECT DATE_TRUNC('minute', TIMESTAMP '2023-09-16 17:02:30'); -- 2023-09-16 17:02:00.000000
12. TO_DATE() 함수
💡 TO_DATE() 함수
- 데이터베이스에서 날짜 형식의 문자열을 날짜로 변환하는 함수입니다. 이 함수는 주어진 문자열을 지정된 형식으로 해석하여 해당하는 날짜로 변환합니다.
- 해당 함수는 DATE 타입으로 반환합니다.
💡 기본구조 인자
- text: 변환하려는 텍스트를 의미합니다.
- format: 변환하려는 데이터 형식을 의미합니다. (*하단의 데이터 형식 표를 참고)
-- 기본 구조
TO_DATE(text,format);
format | 설명 |
Y,YYY | 콤마가 있는 4자리 연도 |
YYYY | 4자리 연도 |
YYY | 연도의 마지막 3자리 |
YY | 연도의 마지막 2자리 |
Y | 연도의 마지막 숫자 |
IYYY | ISO 8601 주 번호 연도 (4자리 이상) |
IYY | ISO 8601 주 번호 연도의 마지막 3자리 |
IY | ISO 8601 주 번호 연도의 마지막 2자리 |
I | ISO 8601 주 번호 연도의 마지막 숫자 |
BC, bc, AD or ad | 온점 없는 시대 표시 |
B.C., b.c., A.D. or a.d. | 온점 있는 시대 표시 |
MONTH | 대문자로 된 영어 월 이름 |
Month | 첫 글자만 대문자로 된 영어 월 이름 |
month | 소문자로 된 영어 월 이름 |
MON | 대문자로 된 월 축약 이름 (예: JAN, FEB 등) |
Mon | 첫 글자만 대문자로 된 월 축약 이름 (예: Jan, Feb 등) |
mon | 소문자로 된 월 축약 이름 (예: jan, feb 등) |
MM | 01에서 12까지의 월 번호 |
DAY | 대문자로 된 요일 이름 |
Day | 첫 글자만 대문자로 된 요일 이름 |
day | 소문자로 된 요일 이름 |
DY | 대문자로 된 요일 축약 이름 |
Dy | 첫 글자만 대문자로 된 요일 축약 이름 |
dy | 소문자로 된 요일 축약 이름 |
DDD | 연중 날짜 (001-366) |
IDDD | ISO 8601 주 번호 연도의 날짜 (001-371; 연중 첫 번째 ISO 주의 월요일이 연중 첫 번째 날) |
DD | 월의 날짜 (01-31) |
D | 일요일부터 토요일까지의 요일 (1-7) |
ID | ISO 8601 주 번호 연도의 요일 (월요일부터 일요일까지 1-7) |
W | 월의 주차 (1-5) (첫 번째 주는 월의 첫 날부터 시작) |
WW | 연중 주차 (1-53) (첫 번째 주는 연도의 첫 날부터 시작) |
IW | ISO 8601 주 번호 연도의 주차 (01-53; 연도의 첫 번째 목요일이 1주차) |
CC | 세기 (예: 21, 22 등) |
J | 율리우스 일 (기준 시각 4714년 11월 24일 자정 UTC부터의 정수 일) |
RM | 대문자 로마 숫자로 된 월 (I-XII; I=1월) |
rm | 소문자 로마 숫자로 된 월 (i-xii; i=1월) |
-- 사용예시 -1
SELECT TO_DATE('20230916', 'YYYYMMDD'); -- 2023-09-16
-- 사용예시 -2
SELECT TO_DATE('2023-09-16', 'YYYY-MM-DD');
-- [22008] ERROR: date out of range: "20230916"
SELECT TO_DATE('20230916', 'YYYY-MM-DD');
[ 더 알아보기 ]
💡 입력값과 format은 동일한 형태여야 하는가?
- 입력값과 format의 형태는 일치해야 합니다. 입력값을 format 형태로 변환하여 사용해야 정확한 결과를 얻을 수 있습니다.
13. TO_TIMESTAMP() 함수
💡 TO_TIMESTAMP() 함수
- 일련의 날짜 및 시간 문자열을 입력으로 받아서, 해당 날짜와 시간을 나타내는 타임스탬프로 변환하는 함수입니다.
- 해당 함수는 TIMESTAMP 형태로 값을 반환합니다
- 입력된 문자열에서 공백은 모두 건너뛰고 변환을 합니다. 그리고 해당 공백 옵션 중 FX 옵션을 추가하면 공백 하나만 입력되도록 지정합니다. 예시) SELECT TO_TIMESTAMP('2017 Aug', 'FXYYYY MON');
💡 기본구조 인자
- timestamp : 변환하려는 값을 의미합니다
- format : 변환되려는 형태를 의미합니다.
TO_TIMESTAMP(timestamp, format)
format | 설명 |
Y,YYY | 콤마가 있는 4자리 연도 |
YYYY | 4자리 연도 |
YYY | 연도의 마지막 3자리 |
YY | 연도의 마지막 2자리 |
Y | 연도의 마지막 숫자 |
IYYY | ISO 8601 주 번호 연도 (4자리 이상) |
IYY | ISO 8601 주 번호 연도의 마지막 3자리 |
IY | ISO 8601 주 번호 연도의 마지막 2자리 |
I | ISO 8601 주 번호 연도의 마지막 숫자 |
BC, bc, AD or ad | 온점 없는 시대 표시 |
B.C., b.c., A.D. or a.d. | 온점 있는 시대 표시 |
MONTH | 대문자로 된 영어 월 이름 |
Month | 첫 글자만 대문자로 된 영어 월 이름 |
month | 소문자로 된 영어 월 이름 |
MON | 대문자로 된 월 축약 이름 (예: JAN, FEB 등) |
Mon | 첫 글자만 대문자로 된 월 축약 이름 (예: Jan, Feb 등) |
mon | 소문자로 된 월 축약 이름 (예: jan, feb 등) |
MM | 01에서 12까지의 월 번호 |
DAY | 대문자로 된 요일 이름 |
Day | 첫 글자만 대문자로 된 요일 이름 |
day | 소문자로 된 요일 이름 |
DY | 대문자로 된 요일 축약 이름 |
Dy | 첫 글자만 대문자로 된 요일 축약 이름 |
dy | 소문자로 된 요일 축약 이름 |
DDD | 연중 날짜 (001-366) |
IDDD | ISO 8601 주 번호 연도의 날짜 (001-371; 연중 첫 번째 ISO 주의 월요일이 연중 첫 번째 날) |
DD | 월의 날짜 (01-31) |
D | 일요일부터 토요일까지의 요일 (1-7) |
ID | ISO 8601 주 번호 연도의 요일 (월요일부터 일요일까지 1-7) |
W | 월의 주차 (1-5) (첫 번째 주는 월의 첫 날부터 시작) |
WW | 연중 주차 (1-53) (첫 번째 주는 연도의 첫 날부터 시작) |
IW | ISO 8601 주 번호 연도의 주차 (01-53; 연도의 첫 번째 목요일이 1주차) |
CC | 세기 (예: 21, 22 등) |
J | 율리우스 일 (기준 시각 4714년 11월 24일 자정 UTC부터의 정수 일) |
RM | 대문자 로마 숫자로 된 월 (I-XII; I=1월) |
rm | 소문자 로마 숫자로 된 월 (i-xii; i=1월) |
-- 사용예시 -1
SELECT TO_TIMESTAMP('2022-01-01 12:34:56', 'YYYY-MM-DD HH24:MI:SS');
-- 사용예시 -2
SELECT TO_TIMESTAMP('2017 Aug','YYYY MON'); -- 2017-08-01 00:00:00-07
4) 날짜 함수 종류-2 : 심화
1. 날짜 함수 요약
함수 이름 | 분류 | 리턴 타입 | 설명 | 예시 |
CLOCK_TIMESTAMP | 값 반환 | timestamp with time zone | 현재 시스템 시간을 반환합니다. | SELECT CLOCK_TIMESTAMP(); |
JUSTIFY_DAYS | 값 반환 | interval | 지정된 일 수를 가진 날짜 간격을 반환합니다. | SELECT JUSTIFY_DAYS(10); |
JUSTIFY_HOURS | 값 반환 | interval | 지정된 시간 수를 가진 시간 간격을 반환합니다. | SELECT JUSTIFY_HOURS(3); |
JUSTIFY_INTERVAL | 값 반환 | interval | 지정된 일 수와 시간 수를 갖는 시간 간격을 반환합니다. | SELECT JUSTIFY_INTERVAL(2, 5); |
STATEMENT_TIMESTAMP | 값 반환 | timestamp with time zone | 현재 SQL 문의 실행 시간을 반환합니다. | SELECT STATEMENT_TIMESTAMP(); |
TIMEOFDAY | 값 반환 | text | 현재 시스템 시간과 날짜를 반환합니다. | SELECT TIMEOFDAY(); |
TRANSACTION_TIMESTAMP | 값 반환 | timestamp with time zone | 현재 트랜잭션의 시작 시간을 반환합니다. | SELECT TRANSACTION_TIMESTAMP(); |
ISFINITE | 값 확인 | boolean | 인수가 유한한 값인지 확인합니다. | SELECT ISFINITE(5.6); |
오늘도 감사합니다. 😀
반응형
'DB > API Document' 카테고리의 다른 글
[DB/Postgres] PostgreSQL 데이터 타입의 종류 이해하기 (1) | 2023.12.21 |
---|---|
[DB/postgres] 윈도우 함수(Window Function) 이해 및 활용방법 (0) | 2023.09.28 |
[DB/Postgres] 문자열 함수(String Function) 이해 및 활용방법 (0) | 2023.09.20 |
[DB/Postgres] 수학 함수(Math Function) 이해 및 활용방법 (0) | 2023.09.13 |
[DB/Postgres] 집계 함수(Aggregate Function) 이해 및 활용방법 (0) | 2023.09.10 |