0

我有一个存储过程,它基本上更新了某些行的 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'
);

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

谢谢你的帮助!

4

1 回答 1

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 上测试。

于 2012-06-18T18:11:32.177 回答