English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 날짜와 시간

SQLite는 다음 다섯 가지 날짜와 시간 함수를 지원합니다:

순번함수예제
1date(timestring, modifier, modifier, ...)YYYY로 시작하며-MM-DD 형식으로 날짜를 반환합니다.
2time(timestring, modifier, modifier, ...)HH:MM:SS 형식으로 시간을 반환합니다.
3datetime(timestring, modifier, modifier, ...)YYYY로 시작하며-MM-DD HH:MM:SS 형식으로 반환됩니다.
4julianday(timestring, modifier, modifier, ...)이는 그리니치 표준시로부터의公元前 4714 년 11 월 24 일 중반부터 시작하는 일 수
5strftime(format, timestring, modifier, modifier, ...)이는 첫 번째 매개변수로 지정된 포맷 문자열에 따라 포맷화된 날짜를 반환합니다. 자세한 포맷은 아래 설명을 참조하세요.

위의 다섯 가지 날짜와 시간 함수는 시간 문자열을 매개변수로 받습니다. 시간 문자열 뒤에는 수정자가 하나나 여러 개 추가될 수 있습니다. strftime() 함수는 포맷 문자열 format을 첫 번째 매개변수로 받을 수 있습니다. 다음은 다양한 유형의 시간 문자열과 수정자에 대한 자세한 설명입니다.

시간 문자열

하나의 시간 문자열은 다음과 같은 어떤 형식 중 하나를 사용할 수 있습니다:

순번시간 문자열예제
1YYYY-MM-DD2010-12-30
2YYYY-MM-DD HH:MM2010-12-30 12:10
3YYYY-MM-DD HH:MM:SS.SSS2010-12-30 12:10:04.100
4MM-DD-YYYY HH:MM30-12-2010 12:10
5HH:MM12:10
6YYYY-MM-DDTHH:MM2010-12-30 12:10
7HH:MM:SS12:10:01
8YYYYMMDD HHMMSS20101230 121001
9현재2013-05-07

날짜와 시간을 구분하는 글자로 "T"를 사용할 수 있습니다.

수정자(Modifier)

시간 문자열 뒤에는 수정자가 하나나 여러 개 추가될 수 있으며, 이는 위의 다섯 가지 함수가 반환하는 날짜와 시간을 변경합니다/또는 시간. 위의 다섯 가지 기능 중 하나가 시간을 반환합니다. 수정자는 왼쪽에서 오른쪽으로 사용되어야하며, SQLite에서 사용할 수 있는 수정자는 다음과 같습니다:

  • NNN 일

  • NNN 시간

  • NNN 분

  • NNN.NNNN 초

  • NNN 월

  • NNN 년

  • start of month

  • start of year

  • start of day

  • weekday N

  • unixepoch

  • localtime

  • utc

포맷팅

SQLite는 매우 편리한 함수를 제공합니다 strftime() 으로 일반적인 날짜와 시간을 포맷팅할 수 있습니다. 다음과 같은 대체를 사용하여 날짜와 시간을 포맷팅할 수 있습니다:

대체설명
%d1월의 몇 번째 날, 01-31
%f소수점을 포함한 초, SS.SSS
%H시간, 00-23
%j년의 몇 번째 날, 001-366
%Jjulian 날짜, 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