목차
날짜 변환 함수
SQLite은 DATETIME 자료형이 없기 때문에, 대부분 TEXT로 정의된 날짜를 DATETIME형식으로 변환해줘야함
날짜 반환 : DATETIME
'YYYY-MM-DD HH:MM:SS' 형식
- SELECT datetime('2024-10-03', '+1 day', '+3 hours'); -- 결과: '2024-10-04 03:00:00'
날짜 반환 : DATE()
'YYYY-MM-DD' 형식으로 변경
- SELECT date('2024-10-03 14:35:22'); -- 결과: '2024-10-03'
- SELECT date('2024-10-03', '+5 days'); -- 결과: '2024-10-08'
- SELECT date('2024-10-03', '-1 year'); -- 결과: '2023-10-03'
날짜 반환 : TIME()
HH:MM:SS 형식으로 변경
현지 시간 가져오기 : now, local
표준 시간(영국) 가져오기
- datetime('now'), date('now'), time('now')
현재 내가 있는 곳의 정보 가져오기 -> local 옵션 추가
- datetime('now', 'local'), date('now', 'local'), time('now', 'local')
누적 일수 가져오기: 줄리안 일 반환
julianday()는 1776월 7월 4일 부터 지정한 시간의 일수를 계산함
일수 차이를 계산하기 좋음
e.g. julianday('now') - julianday('1776-12-13')
누적 초 가져오기: 유닉스 에포크
unixepoch()는 1770월 1월 1일 00:00:00 으로 부터 지정된 날짜까지 초 시간를 가져옴
초 차이를 계산하기 좋음
e.g. unixepoch('now') - unixepoch('1776-12-13')
원하는 날짜/시간 형식으로 변경: strftime()
strftime('형식지정자', '날짜')
- '%Y-%m-%d %H:%M:%S' -> 2024-12-13 24:09:01
+ )헷갈리는 형식 지정자
- 요일
- 기본
- '%Y-%m-%d %H:%M:%S'
- %F: ISO 8601 날짜 형식으로 표시합니다 (예: YYYY-MM-DD).
- %j: 연중 일수를 표시합니다 (예: 001-366).
- %u: 월요일을 1로 시작하는 주중 일수를 표시합니다 (예: 1-7).
- %w: 일요일을 0으로 시작하는 주중 일수를 표시합니다 (예: 0-6)
- 기본
차이 계산하기
두 날짜 간 시간 차이 계산
timediff(날짜1, 날짜2)
두 날짜 간 day 차이 계산
julianday(날짜1, 날짜2)
초단위 계산하기
strftime("%s", 날짜1) - strftime("%s", 날짜2)
unixepoch(날짜1)-unixepoch(날짜2)
Reference
https://www.mindscale.kr/docs/sqlite/date-and-time-functions
'SQL > SQLite' 카테고리의 다른 글
[SQLite][문제풀이] 레스토랑 요일 별 구매 금액 Top3 영수증 (0) | 2024.11.11 |
---|---|
[SQLite] JOIN (0) | 2024.10.04 |
[SQLite] CASE IF (1) | 2024.10.03 |
[SQLite] LEAD OVER 구문 (1) | 2024.10.03 |
[SQLite] with 구문 (1) | 2024.10.03 |