年末時間戳
查找下一個年份邊界的 Unix 時間戳,並複製常見的日期範圍值用於年度報告和腳本。
年末邊界
對大多數資料庫過濾而言,乾淨的邊界是下一年的開始 00:00:00 UTC。把它用作排他上界:created_at >= yearStart and created_at < nextYearStart。
為什麼排他上界更安全
排他上界避免了差一秒和毫秒精度的錯誤。它們在儲存秒的小數部分的資料庫之間也能乾淨地工作。
使用年末邊界
最安全的年末時間戳記是下一年的第一刻,用作排他上界。它表示目前年份停止的那個點,而不依賴於你的儲存保留秒、毫秒、微秒還是奈秒。這使同一個過濾器在日誌、API 和 SQL 資料庫之間可移植。
- 使用 created_at < nextYearStart 而非 created_at <= lastSecondOfYear
- JavaScript 和前端圖表範圍使用毫秒值
- Unix 工具和大多數後端時間戳記欄使用秒值
- 檢查完整的年度範圍時把該值與 yearStart 搭配
驗證年末值
把複製的值轉換回 UTC,確認它是下一年的 1 月 1 日 00:00:00。儘管人們稱之為年末,這個邊界有意是該年之後的第一刻,從而在秒、毫秒和微秒精度下保持資料庫過濾器乾淨。它還避免了決定最後儲存的記錄使用 23:59:59、23:59:59.999 還是更細的小數值。