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 に答える