MySQL YEAR比较

时间:2018-08-21 23:17:07

标签: mysql

几年前,我写了一个查询,现在回头看一些旧代码时,我试图弄清楚为什么我要这样做。据我所知,其目的只是从UNIX时间戳中提取年份。谁能告诉我使用这项服务有什么好处?

git

而不是简单地:

YEAR(DATE_ADD(DATE_SUB(DATE_ADD(FROM_UNIXTIME( 0 ), INTERVAL FullDate SECOND), INTERVAL @@session.time_zone HOUR_MINUTE), INTERVAL '08:00' HOUR_MINUTE))

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试补偿当前时区,然后输出时区UTC+8:00中的(所在年份)(适用于Wikipedia的国家)。

因此DATE_ADD(FROM_UNIXTIME( 0 ), INTERVAL FullDate SECOND)为您提供了当前时区的当前时间; DATE_SUB(..., INTERVAL @@session.time_zone HOUR_MINUTE)将其转换为UTC,然后DATE_ADD(..., INTERVAL '08:00' HOUR_MINUTE)将时间转换为UTC+8:00

如果您不想进行时区转换,那么DATE_FORMAT(FROM_UNIXTIME(FullDate), '%Y')会完成工作,实际上FROM_UNIXTIME(FullDate, '%Y')YEAR(FROM_UNIXTIME(FullDate))