【发布时间】:2019-09-10 11:11:10
【问题描述】:
我有一个可以进行简单插入的应用程序:
这是我在 sequelize 中的配置
const options = {
operatorsAliases: false,
dialect: tenants.db_username,
host: tenants.db_host,
logging: false,
dialectOptions: {
useUTC: true,
},
timezone: 'America/Sao_Paulo',
};
const databaseConfig = {
db: {
database: tenants.db_name,
user: tenants.db_username,
password: tenants.db_password,
options,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000,
},
},
};
当我插入时,我使用 log 来获取由 Sequelize 生成的命令,这是命令:
INSERT INTO "table_teste" ("action_id","action_lat","action_long","action_time","action_type","action_obs","createdAt","updatedAt","user_id") VALUES (DEFAULT,13123123,413134,'2019-09-09 16:40:31.000 -03:00','ENTRADA','','2019-09-09 16:41:13.237 -03:00','2019-09-09 16:41:13.237 -03:00',2) RETURNING *;
此处显示的时间 2019-09-09 16:40:31.000 是正确的,但是当从 Postgres 运行时,我的数据库插入了一个错误的时间,例如 2019- 09-09 19:40:31+00
刚刚发生了一个奇怪的行为,我设法从选择中删除了时区,现在我的日志显示了这个
INSERT INTO "table_teste" ("action_id","action_lat","action_long","action_time","action_type","action_obs","createdAt","updatedAt","user_id") VALUES (DEFAULT,2311321233,12323,'2019-09-09 19:21:14.000','ENTRADA','','2019-09-09 19:21:15.683','2019-09-09 19:21:15.683',2) RETURNING *;
如果我在 Postgres pgadmin4 中从我的 SQL 执行它,它可以正常工作,但如果我使用 Sequelize 他们给我一个错误的日期,为什么?
【问题讨论】:
-
您的时间戳是存储为带时区的时间戳还是不带时区的时间戳?
-
Sequelize 不允许我在自动生成的 createdAt 和 updatedAt 列中创建没有时区类型的时间戳。我像这样发送我的日期 2019-09-09 16:40:31
-
没人能帮我吗?
标签: node.js postgresql sequelize.js