DB2中有关日期和时间的函数及应用
2010-06-06 15:01:43 来源:WEB开发网如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。为此,只要使用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))
)
@
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››有关Linux升级的经验之谈
- ››有关 Web 响应式设计的 7 点启发
- ››有关Seowhy夫唯知识问答之感悟
- ››有关谷歌产品的各种看法及针对性的搜索营销建议
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接