我有一张包含每日样本的读数表。因此,我有一个名为“日期”的列。我需要选择日期作为 unix 时间戳。
目前我有这个:
- 日期列使用日期类型
- 插入格式为 YYYY-MM-DD
- 在插入时,只关心日期而不是时间(所以可能存储为 UTC YYYY-MM-DD 00:00:00?)
- 服务器时区为 UTC+2
我需要UTC YYYY-MM-DD 00:00:00(一天的开始)的unix时间戳。但似乎 MySQL 将日期存储为 UTC 值,然后在检索时将它们转换回服务器时区。所以:
SELECT UNIX_TIMESTAMP(`date`) AS `date_stamp` ...
...实际上返回前一天的 unix 时间戳(YYYY-MM-DD 22:00:00)。
所以我考虑过使用 CONVERT_TZ,但我有一个 Windows 服务器,所以似乎任何查询都返回 NULL,除非我配置时区描述表:
SELECT (UNIX_TIMESTAMP(CONVERT_TZ(`date`, 'UTC', 'SYSTEM'))) AS `date_stamp` ...
我做对了吗?我使用的是最佳日期格式吗?我是转换最好的方式吗?