WEB开发网
开发学院数据库DB2 DB2中有关日期和时间的函数及应用 阅读

DB2中有关日期和时间的函数及应用

 2010-06-06 15:01:43 来源:WEB开发网   
核心提示:如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串,DB2中有关日期和时间的函数及应用(2),为此,只要使用CHAR()函数:char(currentdate)char(currenttime)char(currentdate+12hours)要将字符串转换成日期或时间值,以指出结果的时间单位:1=秒的

如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。为此,只要使用CHAR()函数:

char(currentdate)
char(currenttime)
char(currentdate+12hours)

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

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()和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用户定义的函数:

CREATEFUNCTIONsecondsdiff(t1TIMESTAMP,t2TIMESTAMP)
RETURNSINT
RETURN(
(DAYS(t1)-DAYS(t2))*86400+
(MIDNIGHT_SECONDS(t1)-MIDNIGHT_SECONDS(t2))
)
@

Tags:DB 有关 日期

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接