← 全部文章

技术与生活 / 一篇记录

按月统计之前,先统一时间含义

字符串格式统一只是起点,业务上的月份还依赖时区。一个 UTC 时刻换算到当地时间后可能进入下个月,因此报表需要明确使用哪个时间边界。

存储格式与时区约定越明确,按天或按月聚合越容易保持一致。

实际怎么检查

查询示例以 SQLite 为例;notes 为测试表,包含 id、title、score、category、created_at 字段。

SELECT substr(created_at, 1, 7) AS month, COUNT(*) FROM notes GROUP BY month;

先确认样本使用统一 ISO 日期格式,再检查分组。

遇到异常再检查什么

示例的字符串截取只适合格式和时区都已规范化的测试数据。正式报表应使用数据库支持的日期函数或显式的时间范围条件,避免靠外观判断。

月度范围通常可以写成包含月初、不包含下月月初的条件。这样的半开区间更容易处理不同月份天数,也避免依赖最后一秒或最后一毫秒的精度假设。

字符串截取只适用于已规范化的格式,不能替代通用日期解析。

参考:SQL 文档。

搜索文章

输入关键词,找回一篇记录。