2016-05-12 145 views
0

我在用postgresql db和knex ORM构建一个使用node.js的应用程序。我有一个列类型date。我以YYYY-MM-DD(2016/05/12)格式上传日期数据。当我查看pgAdmin中的数据时,数据正确显示为2016/05/12。然而,当我检索数据,其显示格式为:postgresql返回不正确的日期格式

Wed May 11 2016 20:00:00 GMT-0400 (EDT)

有谁知道为什么会发生?这里是我的查询:

knex('projects').where({ 
    report_id: req.params.id 
}).then(function(data) { 
    console.log(data[0].created_at); //returns Wed May 11 2016 20:00:00 GMT-0400 (EDT) 
    res.send(data); 
}).catch(function(error) { 
    console.log('error: ' + error); 
    res.sendStatus(500); 
}); 

查询返回:

Wed May 11 2016 20:00:00 GMT-0400 (EDT) - 这是关闭的,每天补充说,我没有原来输入到数据库的其他信息。

有谁知道可能会发生什么?

在此先感谢!

+0

我不知道knex.js,但似乎客户端的东西是将日期转换为自己选择的东西,看看那里。 –

回答

2

JavaScript中没有date数据类型。您的date sql数据类型正在作为datetime javascript数据类型进行投放,这就是为什么要添加时区信息的原因。

要解决它,尝试具有调用数据库返回的字段作为varchar(即像var data = db.query('select date::varchar from table',conn)然后JavaScript就认为这是string,因此现场的数据完整性。