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。