Oracle和PostgreSQL中时间间隔类型(Interval)表达式

Oracle和PostgreSQL都支持一种叫作Interval的时间间隔类型,据有关资料显示,它是SQL-92标准的一种规范类型,但实际支持的数据库并不算多。

Oracle中关于Interval类型的说明:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#i38598(话说有谁翻译下)

PostgreSQL中关于Interval类型的说明:

http://58.58.25.191:8079/doc/html/9.3.1_zh/datatype-datetime.html#DATATYPE-INTERVAL-INPUT

Oracle啰啰嗦嗦说了很多,实际上就是将时间间隔分为两类,一类是年月(YEAR TO MONTH)另一种是日加时分秒(DAY TO SECOND),秒可以有小数部分代表毫秒数甚至可以是微秒。之所以分两类,原因很简单,就是因为月的天数不固定,没法与日直接转换。

而postgresql更采用了接近自然语言的描述,如1 year 2 month。QDB将支持这几种表达方式的解析,但会收集大家的意见提供更好的呈现方式,具体方案以后公布。

ISO 8601的格式:

P加上相应的代表时间的大写字母。如在一年三个月五天六小时七分三十秒内,可以写成P1Y3M5DT6H7M30S。

分享到: