0

1 日の最後の 1 秒などを日付に追加することはできますか?

異なる時刻の日付があり、すべての日付を 23:59:59 に設定する必要があるとしましょう...

出来ますか?

ありがとう

4

4 に答える 4

6

@a_horse_with_no_name によって提案された解決策が遅いことが判明した場合は、次の方法で実行できるはずです。

+1 日 -1 秒は、文字列連結なしで、その結果を取得するために従うロジックです。

SELECT trunc(SYSDATE) + 1 - (INTERVAL '1' SECOND) FROM DUAL

SQLフィドル

UPDATEに翻訳

UPDATE MY_TABLE 
SET MY_DATE_COLUMN = trunc(MY_DATE_COLUMN) + 1 - (INTERVAL '1' SECOND) 

ただし、保守性はソフトウェアを作成する上で非常に重要であり、これを読むことは、提案されている他のソリューションよりもはるかに難しいことに注意してください。

おすすめの読み物

于 2013-09-20T12:24:27.383 に答える
5
update the_table
   set the_date_column = to_date(to_char(the_date_column, 'yyyy-mm-dd')||' 23:59:59', 'yyyy-mm-dd hh24:mi:ss');
于 2013-09-20T12:21:29.700 に答える
0

はい。データ列には、秒の値を持つタイムスタンプを含む日付値を格納できます。このように使用してください -

insert into tab_name
(dt)
values
(to_date('20/09/2013 17:50:50', 'DD/MM/YYYY HH24:MI:SS'));
于 2013-09-20T12:22:49.980 に答える