MySQL从表数据返回错误的时间

时间:2018-12-13 06:13:05

标签: mysql node.js datetime

我在表中有数据,并且其中一列是DATETIME。

select time from tbdt where unix_timestamp(time) > unix_timestamp(now()) order by time asc limit 1

现在NodeJS在console.log()中打印错误的时间,例如

实际日期时间在数据库表中为2018-12-16 15:00:00。 但是mysql返回2018-12-16T09:30:00.000Z

相差5小时30分钟,我的时区是+5:30(IST)

无论是在MySql中还是在Node Js中,我都不知道哪里出了错

2 个答案:

答案 0 :(得分:0)

您应该检查运行MySQL的服务器时间,因为它将从托管它的服务器中选择时间。

这是由MySQL完成的,而不是由NodeJS完成的,您可以通过控制台或SQL开发人员工具将上述查询直接运行到数据库中来进行验证。

答案 1 :(得分:0)

需要在MySql中使用convert_tz函数。

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+5:30');

它具有以下签名:

CONVERT_TZ(dt,from_tz,to_tz)

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_convert-tz