我有一个使用时间类型定义的列和一个使用日期类型定义的列。
knex.schema.createTable('receipt', function(table) {
...
table.date('t_date');
table.time('t_time');
...
});
它以24小时格式将数据存储在数据库中。例如:22:00:00。日期为“2018-11-30”。但是当我运行选择查询时它会返回。
{
...
"transactionDate": "2018-11-29T00:00:00.000Z",
"transactionTime": "1970-01-01T22:20:00.000Z",
...
}
如何从日期格式为 YYYY-MM-dd
和时间为 HH:mm:ssAM/PM
的选择查询中获取日期?
最佳答案
下一个片段对我来说就像一个魅力:
const { setTypeParser, builtins } = require('pg').types;
const typesToReset = [
builtins.DATE,
builtins.TIME,
builtins.TIMETZ,
builtins.TIMESTAMP,
builtins.TIMESTAMPTZ,
];
function resetPgDateParsers() {
for (const pgType of typesToReset) {
setTypeParser(pgType, val => String(val)); // like noParse() function underhood pg lib
}
}
...并在使用您的 pg
或库/orm 之前调用此函数取决于 pg
(knex、反对等)请求。
来源:https://github.com/Vincit/objection.js/issues/663#issuecomment-351678734和 console.log(pg.types)
关于node.js - Knex 从时间列和日期列中获取格式化时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53562925/