首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -不带时区偏移的获取日期

MySQL -不带时区偏移的获取日期
EN

Stack Overflow用户
提问于 2018-08-17 16:40:32
回答 4查看 4.1K关注 0票数 8

我将位(道布)的日期作为日期列存储在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)

提前谢谢你。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-18 07:06:56

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

这是一个样本:

代码语言:javascript
复制
`mysql.createPool({
  connectionLimit: mySQLConfig.connectionLimit,
  host: mySQLConfig.host,
  user: mySQLConfig.username,
  password: mySQLConfig.password,
  database: mySQLConfig.database,
  timezone: 'Z'
});`
票数 9
EN

Stack Overflow用户

发布于 2018-08-18 06:57:24

您可以尝试在mysqljs连接参数中将dateStrings设置为true。这里的问题是mysqljs正在将其转换为javascript对象。这将使它返回为一个字符串与您的预期数据。

票数 3
EN

Stack Overflow用户

发布于 2018-08-17 16:53:58

如果您只想忽略时区,请使用date

代码语言:javascript
复制
select date(dob) from table1

但结果将是'yyyy-mm-dd'

如果您希望它被格式化为2001/02/02

代码语言:javascript
复制
select DATE_FORMAT(dob,'%y/%m/%d') from table1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51899725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档