日期从MySQL更改为NodeJS

问题描述 投票:0回答:1

您好,我将MySQL与NodeJS(https://www.npmjs.com/package/mysql)结合使用>

在节点JS中,我正在使用MomentJS(MomentJS

我用DATETIME进行插入,这样就得到了日期

incomes.registerdate = this.FechaRegistro.utc().format('YYYY-MM-DDTHH:mm:ss') //2019-11-20 22:02:42

日期正确存储,但是当我在NodeJs中选择行时,日期更改

RowDataPacket {
  item: '501021',
  description: 'CLAMP, 2" MUFFLER',
  price: 13,
  quantity: 13,
  rack: 'B-55',
  status: '1',
  registerdate: 2019-11-21T04:02:42.000Z,
  trackingnumber: 'test'
}

为什么?我想获得与插入时相同的时间。

NodeJs在本地主机中运行,而MySQL在服务器中(Azure)

更新

我发现了问题。

包mysql(https://www.npmjs.com/package/mysql),强制返回日期类型(TIMESTAMP,DATETIME,DATE),就像对象类型Date()一样,但是当NodeJS使用从MySQL获得的字符串时,它用作本地时间,但是是UTC时间。

在连接中,我们可以选择强制将日期类型返回为字符串

var mysql = require('mysql'),
    conf = require('./db-conf'),
    dbOptions = {
        host : conf.mysql.host,
        port : conf.mysql.port,
        user : conf.mysql.user,
        password : conf.mysql.pass,
        database : conf.mysql.db,
        dateStrings:true
    },
    myConn = mysql.createPool(dbOptions);


module.exports = myConn;

当我将此选项设置为true时,一切正常,但是如何使NodeJS可以使用UTC中的时间而不是本地时间?>

[嗨,我正在将MySQL与NodeJS一起使用(https://www.npmjs.com/package/mysql)在Node Js中,我正在使用MomentJS(MomentJS),我用DATETIME进行了INSERT操作,我用这种方式获得了日期incomes.registerdate = this ....

mysql node.js
1个回答
0
投票

最佳实践:

始终将日期时间以UTC格式存储在数据库中。

© www.soinside.com 2019 - 2024. All rights reserved.