날짜 함수 여섯 개와 modifier
SQLite의 날짜·시간 함수는 여섯 개고, 전부 같은 modifier 묶음을 받아. 날짜 산술은 이 modifier가 다 해. 그러니 modifier를 외워. 함수 자체는 쉬워.
date(time, modifiers...)— YYYY-MM-DD를 돌려줘.time(time, modifiers...)— HH:MM:SS를 돌려줘.datetime(time, modifiers...)— YYYY-MM-DD HH:MM:SS를 돌려줘.julianday(time, modifiers...)— Julian day를 REAL로 돌려줘.strftime(format, time, modifiers...)— 원하는 형식으로 찍어줘.unixepoch(time, modifiers...)— 3.38부터 돼. 1970년 이후 초를 돌려줘.
손에 익혀둘 modifier는 이런 것들이야.
'+N days','-N hours','+N minutes'같은 상대 이동.'start of month','start of year','start of day'로 경계에 붙이기.'weekday N'은 다음 요일로 옮겨줘. 0이 일요일이고 6이 토요일이야.'localtime'과'utc'로 타임존을 옮겨.
Tip:
datetime('now')는 항상 UTC를 돌려줘. 현지 시각으로 저장할 거면 offset도 같이 저장하든가, 쓰는 시점에 UTC로 바꿔. 타임존이 섞인 컬럼은 두고두고 버그를 뿜어내.