logo

날짜와 시간 관련 함수

SQLite에서 날짜와 시간을 다루는 함수들은 다양한 형식의 시간 값과 함께 사용하여 날짜, 시간, 타임스탬프 등을 계산하고 변환할 수 있게 해줍니다. 여기 이 함수들에 대한 설명과 사용 예시를 제공합니다.

날짜 반환: date

  • date() 함수는 지정된 시간 값으로부터 날짜를 YYYY-MM-DD 형식으로 반환합니다. 추가적인 수정자(modifier)를 사용하여 날짜를 조정할 수 있습니다.
  • 예: date('now', 'start of month', '+1 month', '-1 day')는 현재 달의 마지막 날짜를 반환합니다.

시간 반환: time

  • time() 함수는 지정된 시간 값으로부터 시간을 HH:MM:SS 형식으로 반환합니다. 시간 값을 조정하기 위해 여러 수정자를 사용할 수 있습니다.
  • 예: time('now', 'localtime')는 현재의 지역 시간을 반환합니다.

날짜와 시간 반환: datetime

  • datetime() 함수는 지정된 시간 값으로부터 날짜와 시간을 YYYY-MM-DD HH:MM:SS 형식으로 반환합니다. 이 함수 역시 다양한 수정자를 통해 결과를 조정할 수 있습니다.
  • 예: datetime('now', 'localtime')는 현재의 지역 날짜와 시간을 반환합니다.

줄리안 일 반환: julianday

  • julianday() 함수는 지정된 시간 값으로부터 줄리안 일 번호를 반환합니다. 이 값은 BC 4713년 1월 1일부터의 일 수를 나타냅니다. 이를 통해 날짜 간의 차이를 일 단위로 쉽게 계산할 수 있습니다.
  • 예: julianday('now') - julianday('1776-07-04')는 오늘부터 1776년 7월 4일까지의 일 수를 계산합니다.

유닉스 에포크 반환: unixepoch

  • unixepoch() 함수는 지정된 시간 값으로부터 유닉스 에포크(1970년 1월 1일 00:00:00 UTC 이후의 초)를 반환합니다. 이를 통해 특정 시간을 유닉스 타임스탬프로 변환할 수 있습니다.
  • 예: unixepoch('now')는 현재 시간의 유닉스 타임스탬프를 반환합니다.

날짜와 시간 포맷팅: strftime

strftime() 함수는 지정된 형식에 따라 날짜와 시간을 포맷팅하는 데 사용됩니다. 이 함수는 다양한 형식 지정자를 사용하여 날짜, 시간, 요일 등을 원하는 형태로 변환할 수 있게 해줍니다. strftime() 함수의 일반적인 사용법은 strftime(형식, 시간값, 수정자, ...)입니다. 여기서 형식은 아래에 설명된 형식 지정자를 사용하여 정의됩니다.

형식 지정자

  • %d: 월의 일자를 두 자리 숫자로 표시합니다 (예: 01-31).
  • %e: 월의 일자를 선행 0 없이 표시합니다 (예: 1-31).
  • %f: 초의 소수 부분을 포함합니다 (예: SS.SSS).
  • %F: ISO 8601 날짜 형식으로 표시합니다 (예: YYYY-MM-DD).
  • %H: 24시간 형식의 시간을 두 자리 숫자로 표시합니다 (예: 00-24).
  • %I: 12시간 형식의 시간을 두 자리 숫자로 표시합니다 (예: 01-12).
  • %j: 연중 일수를 표시합니다 (예: 001-366).
  • %J: 줄리안 일수를 소수로 표시합니다.
  • %k: 24시간 형식의 시간을 선행 0 없이 표시합니다 (예: 0-24).
  • %l: 12시간 형식의 시간을 선행 0 없이 표시합니다 (예: 1-12).
  • %m: 월을 두 자리 숫자로 표시합니다 (예: 01-12).
  • %M: 분을 두 자리 숫자로 표시합니다 (예: 00-59).
  • %p: 오전과 오후를 "AM" 또는 "PM"으로 표시합니다.
  • %P: 오전과 오후를 소문자 "am" 또는 "pm"으로 표시합니다.
  • %R: ISO 8601 시간 형식으로 표시합니다 (예: HH:MM).
  • %s: 1970-01-01부터 현재까지의 초 수를 표시합니다.
  • %S: 초를 두 자리 숫자로 표시합니다 (예: 00-59).
  • %T: ISO 8601 시간 형식으로 표시합니다 (예: HH:MM:SS).
  • %u: 월요일을 1로 시작하는 주중 일수를 표시합니다 (예: 1-7).
  • %w: 일요일을 0으로 시작하는 주중 일수를 표시합니다 (예: 0-6).
  • %W: 연중 주수를 표시합니다 (예: 00-53).
  • %Y: 4자리 연도를 표시합니다 (예: 0000-9999).
  • %%: % 문자를 표시합니다.

예시

현재 날짜와 시간을 ISO 8601 형식으로 표시

SELECT strftime('%Y-%m-%dT%H:%M:%S', 'now');

현재 날짜로부터 7일 후의 날짜를 YYYY-MM-DD 형식으로 표시

SELECT strftime('%Y-%m-%d', 'now', '+7 days');

특정 날짜의 요일을 찾기 (1=월요일, ..., 7=일요일)

SELECT strftime('%u', '2023-01-01');

날짜와 시간 차이: timediff

timediff() 함수는 두 시간 값 사이의 차이를 계산합니다.

SELECT timediff('2023-02-15','2023-03-15');

timediff의 결과값으로 새로운 날짜와 시간을 만들 수도 있습니다.

datetime(B, timediff(A,B))

실습

날짜와 시간 함수 실습

테이블 목록

테이블이 없습니다.

히스토리

실행한 SQL이 없습니다.
SQLite를 준비하는 중입니다.
표시할 결과가 없습니다.
Previous
집계 함수