egg-sequelize timezone bug
- Dominant language
- TypeScript
- Stars
- 19k
- Forks
- 1.8k
- PR merge metrics
- No merged PRs in 30d
Description
## What happens?
sequelize,数据入库的时候,DATE数据时区换算异常;
## 最小可复现仓库
> 请使用 `npm init egg --type=simple bug` 创建,并上传到你的 GitHub 仓库
## 复现步骤,错误日志以及相关配置
```js
//运行的源码
console.log(arr[key]);
// console.log('md,updated_at:' + arr[key].updated_at, 'md,created_at:' + arr[key].created_at);
const pgRes = await ctx.app.model.CzcCompanyInfo.upsert(arr[key]);
const res = await ctx.app.model.CzcCompanyInfo.findByPk(arr[key].c_id);
console.log('db,updated_at:' + res.dataValues.updated_at, 'db,created_at:' + res.dataValues.created_at);
```
```shell
// 日志
{
c_id: '01015AA8-0F25-4A3B-A76B-D560647E26C0',
created_at: '2020-11-30 14:48:33',
updated_at: '2020-11-30 14:48:33'
}
2020-11-30 14:48:33,906 INFO 27376 [egg-sequelize](21ms) Executed (default): CREATE OR REPLACE FUNCTION pg_temp.sequelize_upsert(OUT created boolean, OUT primary_key text) AS $func$ BEGIN INSERT INTO "public"."czc_company_info" ("c_id","updated_at","created_at") VALUES ('01015AA8-0F25-4A3B-A76B-D560647E26C0','2020-11-30 14:48:33','2020-11-30 06:48:33.000 +00:00'); created := true; EXCEPTION WHEN unique_violation THEN UPDATE "public"."czc_company_info" SET "c_id"='01015AA8-0F25-4A3B-A76B-D560647E26C0',"created_at"='2020-11-30 06:48:33.000 +00:00',"updated_at"='2020-11-30 14:48:33' WHERE ("c_id" = '01015AA8-0F25-4A3B-A76B-D560647E26C0'); created := false; END; $func$ LANGUAGE plpgsql; SELECT * FROM pg_temp.sequelize_upsert();
2020-11-30 14:48:33,920 INFO 27376 [egg-sequelize](6ms) Executed (default): SELECT "c_id", "c_mingcheng", "c_jiancheng", "c_qiyebh", "c_dizhi", "c_lianxir", "c_lianxidh", "c_youzhengbm", "c_kaiyepwh", "c_kaiyerq", "c_jingyingzt", "c_nianshenqk", "c_jingjilx", "c_jingyingxkz", "c_jingyingxukezyxqq", "c_jingyingxukezyxqz", "c_jingyingfw", "c_fubenxh", "c_farendb", "c_suoshuxq", "c_shuoshudw", "c_zhuguanbm", "c_jiandangdw", "c_jiandangr", "c_jiandangrq", "c_danganzt", "c_yingyezzh", "c_shuiwudjzh", "c_shoufeidw", "c_shoufeibz", "c_jiaofeiyxjzrq", "c_shoufeism", "c_yingyuncheliangshu", "updated_at", "created_at", "mark" FROM "public"."czc_company_info" AS "czc_company_info" WHERE "czc_company_info"."c_id" = '01015AA8-0F25-4A3B-A76B-D560647E26C0';
db,updated_at:Mon Nov 30 2020 14:48:33 GMT+0800 (GMT+08:00) db,created_at:Mon Nov 30 2020 06:48:33 GMT+0800 (GMT+08:00)
```
数据模型model:
```javascript
{
c_id: {
type: DataTypes.STRING,
allowNull: false,
comment: '企业信息ID号',
primaryKey: true,
},
updated_at: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: sequelize.fn('now'),
comment: '更新时间',
},
created_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: sequelize.fn('now'),
comment: '记录时间',
},
}
```
sequelize 配置:
``` js
// sequelize
config.sequelize = {
dialect: '',
host: '',
port: '',
database: '',
username: '',
password: '',
// timezone: '+08:00',
};
```
## 相关环境信息
- **操作系统**:win 10
- **Node 版本**:v12.18.3
- **Egg 版本**:2.29.1
Contributor guide
Assessment
This issue has not been assessed yet.