PostgreSQL ISO 8601
国际标准化组织的国际标准ISO 8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。目前最新为第三版ISO8601:2004,第一版为ISO8601:1988,第二版为ISO8601:2000。(摘自百度百科)
select cast('2018-08-05T11:00:00Z' as timestamp), --标准时间
cast('2018-08-05T11:00:00+8' as timestamptz),--东八区,自动转换为pg本地日期时间
cast('2018-08-05T11:00:00-8' as timestamptz),--西八区,自动转换为pg本地日期时间
cast('1970-01-01' as date), --日期无需时区
cast('11:00:00' as time), --不带时区
cast('11:00:00+8' as timetz), --东八区时间
cast('11:00:00-8' as timetz), --西八区时间
cast('P1Y3M15DT16H30M15S' as interval), --1年间隔3个月15天16小时30分钟15秒
cast('P3M15DT16H30M15S' as interval), --间隔3个月15天16小时30分钟15秒
cast('P3M' as interval), --3个月,M在P后表示月
cast('3M' as interval), --3分钟,如果没有P和M,默认为分钟,M的含义取决于它出现在T之前还是之后
cast('PT3M' as interval) --3分钟,如果没有P和M,默认为分钟,M的含义取决于它出现在T之前还是之后
Jetbrains全家桶1年46,售后保障稳定
ISO 8601 间隔单位缩写
该串必须以一个P开始,并且可以包括一个引入当日时间单位的T。单位可以被忽略,并且可以以任何顺序指定,但是小于一天的单位必须出现在T之后。M的含义取决于它出现在T之前还是之后。
缩写 | 含义 |
---|---|
Y | 年 |
M | 月(在日期部分中) |
W | 周 |
D | 日 |
H | 小时 |
M | 分钟 (在时间部分中) |
S | 秒 |
间隔单位书写规范建议
以P开始并且包含T分隔符,以避免差生岐义。
select cast('P3MT2M' as interval),cast('PT3M' as interval); --一看到就知道
select cast('3M' as interval); --????
select cast('P3M' as interval); --????