postgres 下,字段类型的对应关系 TIMESTAMPZ 是否也应该变为 TEXT #2069

Open
opened 2021-11-09 07:20:03 +00:00 by fanybook · 2 comments
Contributor

这是 xorm 现在的对应关系

xorm mysql sqlite3 postgres remark
DATE DATE NUMERIC DATE
DATETIME DATETIME NUMERIC TIMESTAMP
TIME TIME NUMERIC TIME
TIMESTAMP TIMESTAMP NUMERIC TIMESTAMP
TIMESTAMPZ TEXT TEXT TIMESTAMP with zone timestamp with zone info

在 mysql 里,TIMESTAMP 是随时区变化的,DATETIME 与时区无关

在 postgres 里,TIMESTAMP 类似 mysql 的 DATETIME 与时区无关,TIMESTAMP with zone 查询结果与时区有关

所以 postgres 里,TIMESTAMPZ 调整为 TEXT,可以与 mysql 达到类似的效果,而 TIMESTAMP 改为对应 TIMESTAMP with zone

xorm mysql sqlite3 postgres remark
DATE DATE NUMERIC DATE
DATETIME DATETIME NUMERIC TIMESTAMP
TIME TIME NUMERIC TIME
TIMESTAMP TIMESTAMP NUMERIC TIMESTAMP with zone
TIMESTAMPZ TEXT TEXT TEXT timestamp with zone info
这是 xorm 现在的对应关系 | xorm | mysql | sqlite3 | postgres | remark | | :--------- | :-------- | :------ | :------------------ | :----------------------- | | DATE | DATE | NUMERIC | DATE | | | DATETIME | DATETIME | NUMERIC | TIMESTAMP | | | TIME | TIME | NUMERIC | TIME | | | TIMESTAMP | TIMESTAMP | NUMERIC | TIMESTAMP | | | TIMESTAMPZ | TEXT | TEXT | TIMESTAMP with zone | timestamp with zone info | 在 mysql 里,TIMESTAMP 是随时区变化的,DATETIME 与时区无关 在 postgres 里,TIMESTAMP 类似 mysql 的 DATETIME 与时区无关,TIMESTAMP with zone 查询结果与时区有关 所以 postgres 里,TIMESTAMPZ 调整为 TEXT,可以与 mysql 达到类似的效果,而 TIMESTAMP 改为对应 TIMESTAMP with zone | xorm | mysql | sqlite3 | postgres | remark | | :--------- | :-------- | :------ | :------------------ | :----------------------- | | DATE | DATE | NUMERIC | DATE | | | DATETIME | DATETIME | NUMERIC | TIMESTAMP | | | TIME | TIME | NUMERIC | TIME | | | TIMESTAMP | TIMESTAMP | NUMERIC | TIMESTAMP with zone | | | TIMESTAMPZ | TEXT | TEXT | TEXT | timestamp with zone info |
lunny added the
kind
proposal
label 2021-11-09 09:53:45 +00:00
Owner

Changing TIMESTAMP to TIMESTAMP with zone will break old codes I don't want to do.

Changing TIMESTAMP to `TIMESTAMP with zone` will break old codes I don't want to do.
Author
Contributor

xorm DATETIME & TIMESTAMP both are mapped to TIMESTAMP in pgsql

but TIMESTAMP in pgsql like mysql's datetime, TIMESTAMP with zone in pgsql like mysql's timestamp

The tag of the model has two meanings between mysql and pgsql when xorm's TIMESTAMP

xorm DATETIME & TIMESTAMP both are mapped to TIMESTAMP in pgsql but TIMESTAMP in pgsql like mysql's datetime, TIMESTAMP with zone in pgsql like mysql's timestamp The tag of the model has two meanings between mysql and pgsql when xorm's TIMESTAMP
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xorm/xorm#2069
No description provided.