日期时间,在SQL中到底是字符串还是数字?

经常写SQL脚本的朋友,对数据库中的日期时间类型肯定不会陌生,这是一种非常有意思的数据类型,她既像是字符串类型、又像是数字类型。我们可以像字符串那样组合日期、又可以像数字那样进行各种加减运算。

日期时间太常用了,我们一定好认真的掌握她。MySQL、PostgreSQL、SQL Server等各种数据库系统都提供了丰富的日期时间类型和大量的日期时间处理函数。

其实日期时间类型的本质,就是double浮点数,可以把日期时间类型看作披着字符串外衣的浮点数。所以日期时间类型不但像字符串可组合调用、又像数字可进行运算就不难理解了。

下面我们认识下MySQL、pgSQL和SQL Server的日期时间类型。

MySQL中的日期时间

MySQL中,共有五种表示日期时间的数据类型,分别是DATE、TIME、YEAR、DATETIME、TIMESTAMP。五种类型说明如下:

  • DATE 日期值,格式为YYYY-MM-DD,大小3字节,范围从1000-01-01到9999-12-31。
  • TIME 时间值或持续时间,格式为HH:MM:SS,大小3字节,范围从-838:59:59到838:59:59。
  • YEAR 年份值,格式为YYYY,大小1字节,范围从1901到2155。
  • DATETIME 混合日期和时间值,格式为YYYY-MM-DD HH:MM:SS,大小8字节,范围从1000-01-01 00:00:00到9999-12-31 23:59:59。
  • TIMESTAMP 混合日期和时间值的时间戳,格式为YYYYMMDD HHMMSS,大小4字节,范围从1970-01-01 00:00:00到2037年。

您可能还会对下面的文章感兴趣: