Year End

年末时间戳

查找下一个年份边界的 Unix 时间戳,并复制常见的日期范围值用于年度报告和脚本。

你的本地时区是 UTC

年末边界

对大多数数据库过滤而言,干净的边界是下一年的开始 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 还是更细的小数值。