DB2:使用当前日期在存储过程中构造变量?

时间:2012-06-18 15:55:32

标签: sql db2

我有一个基本上更新某些行的LASTUPDATE时间的存储过程,我希望在存储过程中有一个变量,基本上是:Date + " " + "20:30:00"所以当存储过程运行时,它看起来像这样:

update 
    person 
set 
    LASTUPDATETIME='2012-06-18 20:30:00', 
    NAME='Mike', 
where (
    SOME_PK='123'
);

但如果我明天要运行存储过程,它会是这样的:

update 
    person 
set 
    LASTUPDATETIME='2012-06-19 20:30:00', 
    NAME='Mike', 
where (
    SOME_PK='123'
);

P.S时间永远不会改变,无论何时调用程序,它都应该始终是20:30:00,我只对格式为年 - 月 - 日的日期感兴趣。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用VARCHAR_FORMAT()函数将当前日期作为字符串,然后将硬编码时间附加到其中:

SELECT VARCHAR_FORMAT(CURRENT_TIMESTAMP, 'YYYY-MM-DD') || ' 20:30:00'
FROM SYSIBM.SYSDUMMY1

如果要将结果存储为TIMESTAMP数据类型,可以使用TIMESTAMP函数:

SELECT TIMESTAMP(CURRENT_DATE, '20:30:00')
FROM SYSIBM.SYSDUMMY1

在DB2 for Linux / Unix / Windows和z / OS上测试。