SQLite-날짜 및 시간
SQLite는 다음과 같이 5 개의 날짜 및 시간 기능을 지원합니다.
Sr. 아니. | 함수 | 예 |
---|---|---|
1 | 날짜 (시간 문자열, 수정 자 ...) | 다음 형식으로 날짜를 반환합니다. YYYY-MM-DD |
2 | 시간 (시간 문자열, 수정 자 ...) | 시간을 HH : MM : SS로 반환합니다. |
삼 | datetime (시간 문자열, 수정 자 ...) | YYYY-MM-DD HH : MM : SS를 반환합니다. |
4 | julianday (시간 문자열, 수정 자 ...) | BC 4714 년 11 월 24 일 그리니치 정오 이후의 일 수를 반환합니다. |
5 | strftime (시간 문자열, 수정 자 ...) | 이것은 아래에 설명 된 포맷터에 따라 포맷 된 첫 번째 인수로 지정된 포맷 문자열에 따라 포맷 된 날짜를 반환합니다. |
위의 다섯 가지 날짜 및 시간 함수는 모두 시간 문자열을 인수로 사용합니다. 시간 문자열 다음에는 0 개 이상의 수정자가옵니다. strftime () 함수는 또한 첫 번째 인수로 형식 문자열을 사용합니다. 다음 섹션에서는 다양한 유형의 시간 문자열 및 수정 자에 대해 자세히 설명합니다.
시간 문자열
시간 문자열은 다음 형식 중 하나 일 수 있습니다.
Sr. 아니. | 시간 문자열 | 예 |
---|---|---|
1 | YYYY-MM-DD | 2010-12-30 |
2 | YYYY-MM-DD HH : MM | 2010-12-30 12:10 |
삼 | YYYY-MM-DD HH : MM : SS.SSS | 2010-12-30 12 : 10 : 04.100 |
4 | MM-DD-YYYY HH : MM | 2010 년 12 월 30 일 12:10 |
5 | HH : MM | 12:10 |
6 | YYYY-MM-DDTHH : MM | 2010-12-30 12:10 |
7 | HH : MM : SS | 12:10:01 |
8 | YYYYMMDD HHMMSS | 20101230 121001 |
9 | 지금 | 2013-05-07 |
"T"는 날짜와 시간을 구분하는 리터럴 문자로 사용할 수 있습니다.
수정 자
시간 문자열 뒤에는 위의 5 개 함수 중 하나에서 반환되는 날짜 및 / 또는 시간을 변경하는 0 개 이상의 수정자가 올 수 있습니다. 수정자는 왼쪽에서 오른쪽으로 적용됩니다.
다음 수정자는 SQLite에서 사용할 수 있습니다-
- NNN 일
- NNN 시간
- NNN 분
- NNN.NNNN 초
- NNN 개월
- NNN 년
- 월초
- 연초
- 하루의 시작
- 평일 N
- unixepoch
- localtime
- utc
포맷터
SQLite는 매우 편리한 기능을 제공합니다 strftime()날짜와 시간을 포맷합니다. 다음 대체를 사용하여 날짜 및 시간 형식을 지정할 수 있습니다.
치환 | 기술 |
---|---|
%디 | 날짜, 01-31 |
%에프 | 밀리 초, SS.SSS |
% H | 시간, 00-23 |
%제이 | 일, 001-366 |
%제이 | 율리우스 력 일 번호, DDDD.DDDD |
%미디엄 | 월, 00-12 |
%미디엄 | 분, 00-59 |
%에스 | 1970-01-01 이후 초 |
%에스 | 초, 00-59 |
% w | 요일, 0-6 (0은 일요일) |
% W | 연중 주, 01-53 |
%와이 | 연도, YYYY |
%% | % 기호 |
예
이제 SQLite 프롬프트를 사용하여 다양한 예제를 시도해 봅시다. 다음 명령은 현재 날짜를 계산합니다.
sqlite> SELECT date('now');
2013-05-07
다음 명령은 이번 달의 마지막 날을 계산합니다.
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
다음 명령은 주어진 UNIX 타임 스탬프 1092941466에 대한 날짜와 시간을 계산합니다.
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
다음 명령은 주어진 UNIX 타임 스탬프 1092941466의 날짜와 시간을 계산하고 현지 시간대를 보정합니다.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
다음 명령은 현재 UNIX 타임 스탬프를 계산합니다.
sqlite> SELECT strftime('%s','now');
1393348134
다음 명령은 미국 독립 선언서에 서명 한 이후의 일수를 계산합니다.
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
다음 명령은 2004 년 특정 순간 이후의 초 수를 계산합니다.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
다음 명령은 현재 연도의 10 월 첫 번째 화요일 날짜를 계산합니다.
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
다음 명령은 UNIX 시대 이후의 시간을 초 단위로 계산합니다 (예 : strftime ( '% s', 'now')).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
날짜 형식을 지정할 때 UTC와 현지 시간 값을 변환하려면 다음과 같이 utc 또는 localtime 수정자를 사용하십시오.
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00