본문 바로가기
DBMS/기타

[SQLite] 날짜, 시간 함수, 시간 계산

by 드바 2024. 5. 9.

날짜 시간 함수

함수설명
data(시간표현옵션, ...)"YYYY-MM-DD" 형식 (Y: , M: , D: 반환
time(시간표현옵션, ...)"HH:MM:SS" 형식 (H: , M: , S: 반환
datetime(시간표현옵션, ...)"YYYY-MM-DD HH:MM:SS" 형식 (반환
julianday(시간표현옵션, ...)율리우스력의 기원전 4713 1 1 월요일 정오를 기점으로 계산한 날짜  반환
strftime('포맷', 시간표현옵션)시간 표현을 지정한 포맷으로 설정한 값을 반환

 

date, time, datetime 함수별 결과 값 차이

select 
date('2024-04-28 09:15:42') as date,
time('2024-04-28 09:15:42') as time,
datetime('2024-04-28 09:15:42') as datetime;
  
  date      |time    |datetime           |
----------+--------+-------------------+
2024-04-28|09:15:42|2024-04-28 09:15:42|

 

julianday 함수

율리우스 날짜의 소수점 이하의 값은 아래처럼 계산됩니다

0.1 = 2.4 시간 / 144 분 / 8640 초
0.01 = 0.24 시간 / 14.4 분 / 864 초
0.001 = 0.024 시간 / 1.44 분 / 86.4 초
0.0001 = 0.0024 시간 / 0.144 분 / 8.64 초
0.00001 = 0.00024 시간 / 0.0144 분 / 0.864 초

 
julianday 함수 사용 반환 값

select julianday('2024-04-28 09:15:42') as julianday;

julianday        |
-----------------+
2460428.885902778|

 

반응형

strftime 함수

다른 함수는 출력 값이 정해져 있지만 strftime 함수는 형태를 지정할 수 있습니다

문자설명
%Y년 : 0000-9999
%m월 : 01-12
%d
%W연초부터의 주수 : 00-53
%j연초부터의 경과 일수 : 001-366
%w요일 : 0-6 (일요일은 0, 토요일이 6)
%H시 : 00-24
%M분 : 00-59
%S초 : 00-59
%f초 + 밀리 초 : SS.SSS
%s1970-01-01 이후의 초 수
%J율리우스 일자
%%% 문자

 
'localtime' 옵션이 없으면 기본적으로 UTC 시간대를 반환합니다

select 
strftime('%H:%M:%f', 'now', 'localtime') as strftime_local,
strftime('%H:%M:%f', 'now') as strftime_utc
;

strftime_local|strftime_utc|
--------------+------------+
20:35:49.745  |11:35:49.745|


-- 원하는 문자를 넣어 출력
select strftime( '경과 시간(초) %s초', 'now') as strftime;

strftime            |
--------------------+
경과 시간(초) 1715254624초|

 

시간 계산

-- 1일 후
select datetime('2024-02-05', '+1 days') as datetime;

datetime           |
-------------------+
2024-02-06 00:00:00|

-- 4시간 전
select datetime('2019-11-07', '-4 hours') as datetime;

datetime           |
-------------------+
2019-11-06 20:00:00|


-- 2일 후, 4시간 전
select datetime('2019-11-06', '+2 days', '-4 hours') as datetime;

datetime           |
-------------------+
2019-11-07 20:00:00|

-- 두 날짜의 차이 일 수
select julianday('2024-04-05') - julianday('2024-03-25') AS days ;

days|
----+
11.0|

댓글