English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite는 다음 다섯 가지 날짜와 시간 함수를 지원합니다:
순번 | 함수 | 예제 |
---|---|---|
1 | date(timestring, modifier, modifier, ...) | YYYY로 시작하며-MM-DD 형식으로 날짜를 반환합니다. |
2 | time(timestring, modifier, modifier, ...) | HH:MM:SS 형식으로 시간을 반환합니다. |
3 | datetime(timestring, modifier, modifier, ...) | YYYY로 시작하며-MM-DD HH:MM:SS 형식으로 반환됩니다. |
4 | julianday(timestring, modifier, modifier, ...) | 이는 그리니치 표준시로부터의公元前 4714 년 11 월 24 일 중반부터 시작하는 일 수 |
5 | strftime(format, timestring, modifier, modifier, ...) | 이는 첫 번째 매개변수로 지정된 포맷 문자열에 따라 포맷화된 날짜를 반환합니다. 자세한 포맷은 아래 설명을 참조하세요. |
위의 다섯 가지 날짜와 시간 함수는 시간 문자열을 매개변수로 받습니다. 시간 문자열 뒤에는 수정자가 하나나 여러 개 추가될 수 있습니다. strftime() 함수는 포맷 문자열 format을 첫 번째 매개변수로 받을 수 있습니다. 다음은 다양한 유형의 시간 문자열과 수정자에 대한 자세한 설명입니다.
하나의 시간 문자열은 다음과 같은 어떤 형식 중 하나를 사용할 수 있습니다:
순번 | 시간 문자열 | 예제 |
---|---|---|
1 | YYYY-MM-DD | 2010-12-30 |
2 | YYYY-MM-DD HH:MM | 2010-12-30 12:10 |
3 | YYYY-MM-DD HH:MM:SS.SSS | 2010-12-30 12:10:04.100 |
4 | MM-DD-YYYY HH:MM | 30-12-2010 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"를 사용할 수 있습니다.
시간 문자열 뒤에는 수정자가 하나나 여러 개 추가될 수 있으며, 이는 위의 다섯 가지 함수가 반환하는 날짜와 시간을 변경합니다/또는 시간. 위의 다섯 가지 기능 중 하나가 시간을 반환합니다. 수정자는 왼쪽에서 오른쪽으로 사용되어야하며, SQLite에서 사용할 수 있는 수정자는 다음과 같습니다:
NNN 일
NNN 시간
NNN 분
NNN.NNNN 초
NNN 월
NNN 년
start of month
start of year
start of day
weekday N
unixepoch
localtime
utc
SQLite는 매우 편리한 함수를 제공합니다 strftime() 으로 일반적인 날짜와 시간을 포맷팅할 수 있습니다. 다음과 같은 대체를 사용하여 날짜와 시간을 포맷팅할 수 있습니다:
대체 | 설명 |
---|---|
%d | 1월의 몇 번째 날, 01-31 |
%f | 소수점을 포함한 초, SS.SSS |
%H | 시간, 00-23 |
%j | 년의 몇 번째 날, 001-366 |
%J | julian 날짜, DDDD.DDDD |
%m | 월, 00-12 |
%M | 분, 00-59 |
%s | 부터 1970-01-01 부터의 초수 |
%S | 초, 00-59 |
%w | 주의 몇 번째 날, 0-6 (0은 일요일) |
%W | 년의 몇 번째 주, 01-53 |
%Y | 년, YYYY |
%% | % symbol |
지금부터 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