sql:常用:DateTime,Timestamp,Time和Date有什么区别?

sql 专栏收录该内容
77 篇文章 3 订阅

场景:

用Mysql出现时间问题Incorrect datetime value: '' for column 'createtime',查明原因数据库中用的是TIMESTAMP格式,时间为1970-2038年范围之外的日期无法入库。

解决:使用datetime字段类型

总结如下:

使用MySQL作为一个例子(如果没有其他原因,因为它是最流行的),你有DATE,DATETIME,TIME和TIMESTAMP列数据类型; 就像你有CHAR,VARCHAR,FLOAT和INTEGER。

DATE只存储一个日期:年月日

TIME只存储一天的时间:时分秒

DATETIME存储日期+时间,DATETIME被格式化为YYYY-MM-DD HH:MM:SS,有效范围从1000年到9999年(以及其间的所有内容)。精确到时分秒,用于做时间戳。8个字节储存。

TIMESTAMP :从数据库中获取时TIMESTAMP 看起来是相似的,但它实际上只是一个unix时间戳的前沿,其有效范围从1970年到2038年。

这里除了数据库引擎内部的各种内置函数之外,还有存储空间,由于DATETIME每年,每月,每天,每小时,每分钟和每秒都存储一个数字,所以总共消耗了8个字节。TIMESTAMP,自1970-01-01以来的秒数,它使用4个字节。

最后,它归结为你需要你的日期/时间列做什么。

需要在1970年以前或2038年以后存储日期和时间,使用DATETIME,但需要担心数据库的大小。

在这个时间1970-2038范围内?使用TIMESTAMP。

  • 4
    点赞
  • 0
    评论
  • 14
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值