在timestamp列上进行SELECT查询,以GMT而不是在设置的时区中返回

时间:2016-01-14 13:52:57

标签: mysql datetime timezone mariadb

我更改了mariadb配置文件,并重新启动了mariadb以将时区设置为'+5:30'

此查询确认我目前的时区是'+5:30'

SHOW VARIABLES LIKE 'time_zone';

当选择NOW()时,它正在向我返回正确的时间,正如

所确认的那样
Select NOW();

我有一个“created_on”列,其数据类型是datetime,我在insert触发器中设置了一个表。我在插入触发器中将它设置为NOW()。

SET NEW.created_on = NOW();

当我选择带有选择查询的“created_on”时,它会在GMT中显示日期时间,而不是我设置的时区。

请告诉我有什么问题?以及如何解决它。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

根据@eggyal和@wchiquito的评论,答案是,

如果要在select查询中查看正确的时间,则列的数据类型应为timestamp而不是datetime。 在select查询中进行渲染时,时间戳会处理时区。

谢谢@eggyal和@wchiquito