我将位(道布)的日期作为日期列存储在mySQL表中。
现在的问题是:当我插入位日期(例如: 2001/02/02 )时,我可以毫无问题地存储它。但是当我选择它(SELECT dob FROM table1)时,我得到了UTC格式的结果,如:2001-02-01T18:30:00.000Z
我继续进一步挖掘,以发现这是因为世界协调时的抵消。
是否有任何方法可以返回存储在表中的日期而不需要UTC偏移量?无论世界协调时,所有时区的出生日期都必须是恒定的。
注意:我不想更改服务器时区,因为我确实有使用时间差的列。
编辑:当我使用MySQL工作台执行查询时,我得到了预期的结果,但是当我使用节点(mysqljs)时,我得到了时区格式的结果。
编辑:刚刚发现它是mysqljs的问题,因为它使用时区属性连接到mysqljs服务器。(https://github.com/mysqljs/mysql#connection-options)
提前谢谢你。
发布于 2018-08-18 07:06:56
因此,这是mysqljs的一个问题,我在创建连接时使用了timezone选项。mysqljs使用local作为timezone选项的默认选项,并将其设置为Z似乎解决了这个问题。
这是一个样本:
`mysql.createPool({
connectionLimit: mySQLConfig.connectionLimit,
host: mySQLConfig.host,
user: mySQLConfig.username,
password: mySQLConfig.password,
database: mySQLConfig.database,
timezone: 'Z'
});`发布于 2018-08-18 06:57:24
您可以尝试在mysqljs连接参数中将dateStrings设置为true。这里的问题是mysqljs正在将其转换为javascript对象。这将使它返回为一个字符串与您的预期数据。
发布于 2018-08-17 16:53:58
如果您只想忽略时区,请使用date
select date(dob) from table1但结果将是'yyyy-mm-dd'
如果您希望它被格式化为2001/02/02
select DATE_FORMAT(dob,'%y/%m/%d') from table1https://stackoverflow.com/questions/51899725
复制相似问题