日期时间算术和比较
DATE、TIME 和 TIMESTAMP 值可以与同一类型的另一个值相比较。比较是按时间顺序的。还可以递增、递减和减去日期时间值。
如果数据存储是 DB2,那么还可以使用 DATE、TIME 和 TIMESTAMP 类型的 DB2 字符串表示法。
格式 | 日期格式 | 日期示例 | 时间格式 | 时间示例 |
---|---|---|---|---|
ISO | yyyy-mm-dd | 1987-02-24 1987-2-24 | hh.mm.ss | 13.50.00 13.50 |
USA | mm/dd/yyyy | 2/24/1987 | hh:mm AM 或 PM | 1:50 pm 02:10 AM |
EUR | dd.mm.yyyy | 24.02.1987 24.2.1987 | hh.mm.ss | 13.50.00 13.55 |
JIS | yyyy-mm-dd | 1987-02-24 | hh:mm:ss | 13:50 13:50:05 |
示例 1:日期时间算术比较
e.hiredate > '1990-02-24'
'1990-02-24-13.50.00.000000' 或
'1990-02-24-13.50.00'
如果数据存储是 DB2,那么可以在表达式和比较中使用 DB2 十进制持续时间。日期持续时间是表示两个日期(以 YYYYMMDD 格式表示)之差的 decimal(8,0) 数。持续时间是表示两个时间(以 HHMMSS 表示的)值之差的 decimal(6,0) 数。时间戳记持续时间是表示两个时间戳记值(以 YYYYMMDDHHMMSS.ZZZZZZ 表示)之差的 decimal(20,6) 数(ZZZZZZ 是微秒数并且紧跟十进制小数点)。
可以在两个日期值(或时间值或时间戳记值)之间进行减法运算以得到持续时间。如果第二个操作数大于第一个操作数,那么持续时间为负的十进制数。日期时间值可以加上或减去持续时间来得到新的日期时间值。
示例 2:日期时间算术比较
DATE('3/15/2000') - '12/31/1999' 得到持续时间为 0 年 2 个月 15 天的十进制数 215。
持续时间确实为十进制数并且可在算术表达式和比较中使用。
( DATE('3/15/2000') - '12/31/1999' ) + 14 > 215 求值为 TRUE。
DATE('12/31/1999') + DECIMAL(215,8,0) 得到日期值 3/15/2000。
TIME('11:02:26') - '00:32:56' 得到持续时间为 10 小时 29 分钟 30 秒的十进制数 102930。
TIME('00:32:56') + DECIMAL(102930,6,0) 得到时间值 11:02:26。
TIME('00:00:59') + DECIMAL(240000,6,0) 得到时间值 00:00:59。
e.hiredate + DECIMAL(500,8,0) > '2000-10-01' 意思是 hiredate 加上 5 个月与日期 10/01/2000 作比较。