DB2 如何求得时间差值

1、以秒为单位,求得两个时间的差值

--DROP FUNCTION DB2INST1.GETDATETIMEDIFF (TIMESTAMP ,TIMESTAMP);

CREATE  FUNCTION DB2INST1.GETDATETIMEDIFF (@starttime TIMESTAMP ,@lasttime TIMESTAMP)
--定义返回值类型以及长度
RETURNS DECIMAL(31,2)
--定义返回值,得到两个时间相差秒数
RETURN
 SELECT ((days(@lasttime)-days(@starttime))*86400.0 +(midnight_seconds(@lasttime) -midnight_seconds(@starttime)) ) AS m
from  SYSIBM.SYSDUMMY1 ;

 

2、以小时为单位,求得两个时间的差值
CREATE  FUNCTION DB2INST1.GETDATETIMEDIFF (@starttime TIMESTAMP ,@lasttime TIMESTAMP)
/**************************************************************************
*过程名称:得到时差,以小时为单位
*过程功能:
*参数说明:@starttime开始时间 @lasttime结束时间
*编 程 人: gaojingsong
*编程时间: 2014-05-13
*修 改 人:
*修改功能:
***************************************************************************/
--定义返回值类型以及长度
RETURNS DECIMAL(31,2)
--定义返回值,得到时差
RETURN
 SELECT ((days(@lasttime)-days(@starttime))*86400.0 +(midnight_seconds(@lasttime) -midnight_seconds(@starttime)))/3600.0 AS m
from  SYSIBM.SYSDUMMY1;


 SELECT (days('2014-03-08 18:23:47')-days('2014-02-04 18:23:47'))*86400 AS dd,(midnight_seconds('2014-03-06 18:23:57') -midnight_seconds('2014-03-06 17:23:47')) AS dd  FROM  TB_HGQW_BASIC_KADM WHERE KADM ='209'

 

3、定义一个类似JAVA中的UUID函数

DROP FUNCTION DB2INST1.UUID ();

CREATE FUNCTION DB2INST1.UUID()
--定义返回值类型以及长度
RETURNS VARCHAR(32)
--定义返回值
RETURN
SELECT
CONCAT(CONCAT(HEX(current timestamp),int(rand()*99999999)),int(rand()*9999))
from  SYSIBM.SYSDUMMY1
;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值