SQL 中的日期和时间类型

时间:2023-06-14 11:43:02

在我们SQL中一般支持三种数据类型。

  • date:日历日期,包括年(四位),月和日。
  • time: 一天中的时间,包括小时,分和秒。可以用变量time(p)来表示秒的小数点后的数字位数(默认是0)。 通过制定 time with timezone,还可以把时区信息连同时间一起存储。
  • timestamp: date 和 time的组合。 可以用变量timestamp(p)来表示秒的小数点后的数字位数(这里默认值为6)。如果指定with timezone,则时区信息也会被存储

日期和时间类型的值可按如下方式说明:

  1. date:‘2018-01-17’
  2. time:‘10:14:00’
  3. timestamp:‘2018-01-17 10:14:00.45’

日期类型必须按照如上年月日的格式顺序指定。time和timestamp的秒部分可能会有小数部分。

我们可以利用cast e as t形式的表达式来讲一个字符串(或字符串表达式)e转换成类型t,其中t是date,time,timestamp中的一种。字符串必须符合正确的格式,像本段开头说的那样。

当需要时,时区信息可以从系统设置中得到。


我们可以利用extract(field from d),从date或time的值d中提取出单独的域,这里的域可是 year,month,day, hour,minute或者second中的任意一种。时区信息可以用timezone_hour 和 timezone_minute来提取。