我在表中有数据,并且其中一列是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中,我都不知道哪里出了错
答案 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