MySQL与PostgreSQL的时间类型

1. MySQL的时间类型

 MySQL(5.7)的Timestamp与DateTime类型都是存储时间的数据类型。

Timestamp保存的是UTC时间。数据保存前会根据数据库软件设置的时区(默认随系统),MySQL会将对应传入的时间转化为UTC时间后,再进行保存。

DateTime保存的是没有时区的时间(可以理解为字符串的时间格式)。数据保存时,会原原本本将传入的时间保存下来,不进行任何转换。该类型适合一些本地化系统使用。

实验:
预设条件:以下取orders订单表进行测试,其中created_at 是 Timestamp(3),  updated_at 是 DateTime(3)(实验需要)
测试内容:Timestamp与DateTime的存储数据的区别?及应用场景?

图一 MySQL东8时区的数据展示
图二 MySQL东9时区的数据展示

从图一和图二对比结果可以看出,相同数据在不同时区设置的数据库显示:
1. Timestamp格式的数据是不一样的。但考虑到时区,对应的UTC时间是保持一致的。
2. DateTime格式的数据是不变的。但考虑到时区变化,它对应的UTC时间已经偏离1小时。

也就是说,同一份数据,如果搬到了不同时区的系统,Timestamp对应的UTC时间是一样的,而DateTime实际时间会偏差。

2. PostgreSQL的时间类型

    PostgreSQL在设计命名显得更加通俗易懂,它使用了timestamp和timestamptz分别表达了 MySQL 的DateTime 和 Timestamp。

    PostgreSQL的timestamptz存储时都加上TimeZone,也就是说存储的时间相对UTC时间是不变的。


图三 PostgreSQL的在数据库时区设置为UTC时的数据展示


图四 PostgreSQL的在数据库时区设置为+08:00时区时的数据展示


PostgreSQL的实验结果更清晰,如果是timestamptz类型,它呈现出来都是带时区的。数据库设置为什么时区,就转化为该时区对应的时间。实验结果基本与MySQL一致。

总的来说:
考虑到项目国际化的话,数据库记录的时间需要通过应用呈现给不同时区客户端时,那么建议使用Timestamp,因为该数据类型是有包含时区信息(MySQL默认是UTC)。而且在MySQL数据库, Timestamp数据类型更节省空间。

3. 其它

3.1 数据保存/查询时,输入的时间都需要对应是当前数据库时区的时间,否则找不到对应的记录。

     但是PostgreSQL特殊的地方是,从数据内容可以看出,可以加上时区进行查询,如:
     select * from orders where created_at='2017-07-21 10:20:39.541 +08:00'

3.2 MySQL与PostgreSQL时区的设置(session级别,global并持久化的话需要修改数据库配置)

MySQL:

SELECT @@global.time_zone, @@session.time_zone;

SET @@session.time_zone='+08:00';


PostgreSQL:

show timezone;

set timezone='Asia/Shanghai';

timezone list:https://www.postgresql.org/docs/8.1/static/datetime-keywords.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容