gpt4 book ai didi

javascript - 从 node.js 检索时 Mysql 日期不同

转载 作者:行者123 更新时间:2023-11-30 11:22:03 25 4
gpt4 key购买 nike

我想查询插入日期在两个日期之间的记录,就像这样:

SELECT `products`.`Product_Name`, `products`.`Product_Type`, `products`.`Product_Date` Where 
`products`.`Product_Date` between CONCAT(YEAR(CURRENT_DATE),"-
",MONTH(CURRENT_DATE),"-","01") and (LAST_DAY(CURRENT_DATE))

MySql 中的结果是这样的:

In MySQL result

但在服务器端(我使用 Node.js)结果是不同的,就像这样

[
{"Product_Name":"Water","Product_Type":"Large","Product_Date":"2018-03-24T18:30:00.000Z"},
{"Product_Name":"Water","Product_Type":"Small","Product_Date":"2018-03-24T18:30:00.000Z"},
{"Product_Name":"Water","Product_Type":"Large","Product_Date":"2018-02-28T18:30:00.000Z"},
{"Product_Name":"Water","Product_Type":"Large","Product_Date":"2018-03-30T18:30:00.000Z"}
]

我想从当月的第一天到最后一天查询当月插入的产品,我在 mysql 中得到了正确的结果,但在服务器 Node js 中得到了错误的结果,在第三个对象中它也显示了上个月的日期也。不仅如此,就连日期的格式在服务器端也是不一样的

最佳答案

这看起来像是时区问题。 Node 日期使用标准格式 (ISO 8601) 来表示日期/时间。末尾的 Z 表示时间为 UTC 时间。 Mysql 显示的是本地时间。参见 https://dev.mysql.com/doc/refman/5.7/en/datetime.html .本地时间可以表示 mysql 服务器时区或连接时区(可能相同),具体取决于您设置连接的方式。根据以上输出,我的猜测是您所在的时区至少比 UTC 时间早 5 个半小时。 UTC+5:30 将是印度或斯里兰卡。所以也许你在这些地方之一,或者在那里的东边。一些选项,在您的 Node mysql 连接中,您可以设置时区。例如,在此处查看连接选项:https://www.npmjs.com/package/mysql#establishing-connections

关于javascript - 从 node.js 检索时 Mysql 日期不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49475282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com