首页 > 解决方案 > MySQL - 获取没有时区偏移的日期

问题描述

我将日期 (DOB) 存储为 mySQL 表中的日期列。

现在的问题是:当我插入二进制日期时,例如:2001/02/02,我可以毫无问题地存储它。但是当我选择它 ( SELECT dob FROM table1) 时,我会得到 UTC 格式的结果,例如:2001-02-01T18:30:00.000Z

我继续深入挖掘,发现这是因为 UTC 偏移。

有没有办法返回存储在没有UTC偏移的表中的日期?无论UTC如何,所有时区的出生日期都需要保持不变。

注意:我不想更改服务器时区,因为我确实有某些使用时差的列。

编辑:当我使用 MySQL 工作台执行查询时,我得到了预期的结果,但是当我使用节点(mysqljs)时,我得到了时区格式的结果。

编辑:刚刚发现mysqljs有问题,因为它使用时区属性连接到mysql服务器。(https://github.com/mysqljs/mysql#connection-options

先感谢您。

标签: mysqlnode.jsdatabasedate

解决方案


所以,这是 mysqljs 的一个问题,我timezone在创建连接时使用了选项。mysqljslocal用作timezone选项的默认值并将其设置为Z似乎可以解决我的问题。

这是一个示例:

`mysql.createPool({
  connectionLimit: mySQLConfig.connectionLimit,
  host: mySQLConfig.host,
  user: mySQLConfig.username,
  password: mySQLConfig.password,
  database: mySQLConfig.database,
  timezone: 'Z'
});`

推荐阅读