db2 timestampdiff

db2 timestampdiff要将字符串转换成日期或时间值,可以使用:TIMESTAMP(‘2002-10-20-12.00.00.000000’)TIMESTAMP(‘2002-10-2012:00:00’)DATE(‘2002-10-20′)DATE(’10/20/2002′)TIME(’12:00:00’)TIME(‘12.00.00’)TIMESTAMP()、DATE(…

要将字符串转换成日期或时间值,可以使用:

TIMESTAMP (‘2002-10-20-12.00.00.000000’)

TIMESTAMP (‘2002-10-20 12:00:00’)

DATE (‘2002-10-20’)

DATE (’10/20/2002′)

TIME (’12:00:00′)

TIME (‘12.00.00’)

TIMESTAMP()、DATE()和TIME()函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。

有时,您需要知道两个时间戳记之间的时差。为此,DB2提供了一个名为TIMESTAMPDIFF()的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有30天。以下示例描述了如何得到两个日期的近似时差:

timestampdiff (<n>, char(

timestamp(‘2002-11-30-00.00.00’)-

timestamp(‘2002-11-08-00.00.00’)))

对于<n>,可以使用以下各值来替代,以指出结果的时间单位:

1=秒的小数部分 

2=秒 

4=分

8=时

16=天

32=周

64=月

128=季度

256=年

当日期很接近时使用timestampdiff()比日期相差很大时精确。如果需要进行更精确的计算,可以使用以下方法来确定时差(按秒计):

(DAYS(t1)-DAYS(t2))*86400+

(MIDNIGHT_SECONDS(t1)-MIDNIGHT_SECONDS(t2))

为方便起见,还可以对上面的方法创建SQL用户定义的函数:

CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP)

RETURNS INT

RETURN (

(DAYS(t1) – DAYS(t2)) * 86400 +

(MIDNIGHT_SECONDS(t1) – MIDNIGHT_SECONDS(t2))

)

@今天的文章db2 timestampdiff分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/7042.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注