SQLite 에 없는 두 타입
SQLite 엔 native DATE/DATETIME 타입이 없고 native BOOLEAN 도 없어. 둘 다 기존 타입 위 컨벤션. 날짜에 viable 한 3 가지:
- ISO 8601 TEXT —
'2026-05-03 12:00:00'. 사람이 읽기 좋음, text 로도 정렬 정확, 모든 SQLite 날짜 함수가 지원. 권장 default. - Unix epoch INTEGER — 1970 이후 초. 컴팩트, 비교 빠름, 어떤 언어에서도 다루기 쉬움. 대규모 numeric range 필터링 필요할 때.
- Julian Day REAL — 천문학 컨벤션. 앱 코드 입장에선 거의 옳은 선택 아님.
Boolean 은 SQLite 가 0/1 을 integer 로 저장하고 TRUE/FALSE literal 받아 (1/0 으로 컴파일). 어디서나 보임: archived INTEGER NOT NULL DEFAULT 0.
Tip: 피파의
conversations 테이블이 created_at/updated_at 에 ISO 8601 text 쓰는 이유 — JSONL ground truth 도 ISO 8601 이기 때문. 둘이 byte 비교 가능, purge-and-replay 재구성 단순.