Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Postgres Node.js应用程序中将createAt和updatedAt存储为epoch unix时间戳而不是日期?_Node.js_Postgresql_Sequelize.js - Fatal编程技术网

在Postgres Node.js应用程序中将createAt和updatedAt存储为epoch unix时间戳而不是日期?

在Postgres Node.js应用程序中将createAt和updatedAt存储为epoch unix时间戳而不是日期?,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,我是博士后的新手。我通过Sequelize使用它。我不知道如何在node.js应用程序中创建模型,以便在表中插入行时,将时间指定为历元unix时间戳: 1583855009 而不是: 我试着这样改变我的模型: createdAt: { type: 'TIMESTAMP', defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'), allowNull: false }, updatedAt: { ty

我是博士后的新手。我通过Sequelize使用它。我不知道如何在node.js应用程序中创建模型,以便在表中插入行时,将时间指定为历元unix时间戳:

1583855009
而不是:

我试着这样改变我的模型:

  createdAt: {
    type: 'TIMESTAMP',
    defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
    allowNull: false
  },
  updatedAt: {
    type: 'TIMESTAMP',
    defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
    allowNull: false
  }
但它没有起作用。当使用pgAdmin刷新表时,它仍然显示您在图片中看到的内容,而不是像“158385509”这样的时间戳


有没有办法存储“158385509”呢?

存储在postgres中的时间戳只是与自历元时间起的毫秒数相同的信息的另一种表示形式

一旦从数据库中提取了时间戳字段,就可以使用它来获得所需的数字格式

下面代码段中的插图:

//通过查询从数据库检索时间戳替换下面的行
let valuefromDB=新日期('2020-03-10T09:36:04.071')

console.log(valuefromDB.valueOf())
好的,我想我可以遵循这个模式,所以,如果我想让一个用户直接从数据库中出来,并以json的形式发送出去(类似这样的内容:res.status(200).json(user);),那么createdAt怎么可能是unix时间戳而不是'2020-03-10T09:36:04.071'。。。?我试图避免在那里放一个中间步骤,并认为唯一的方法是直接将“1583832964071”存储在表中……好吧,这两个值是相等的,sequelize返回的值可以直接发送到客户端,无需进一步处理。否则,可以在模型定义中设置使用或的解决方案,使用搜索引擎和阅读文档可以很容易地找到。