7

日時スタンプのリストを生成する Oracle PLSQL コードがあり、それらを 1 日の始まりではなく、午前 7 時と午後 7 時の特定の時間に切り捨てたいと考えています。

例えば:

  • 2013/01/03 0700 は 2013/01/03 0700 になります
  • 2013/01/03 1235 は 2013/01/03 0700 になります
  • 2013/01/03 1932 は 2013/01/03 1900 になります
  • 02/03/2013 0612 は 01/03/2013 1900 になります

私のコードは現在:

 SELECT  TRUNC(TRUNC(SYSDATE,'hh') + 1/24 - (ROWNUM) / 24, 'dd')  as shift_date
 FROM widsys.times
 ORDER BY SYSDATE

ありがとう

4

3 に答える 3

0

次のようなクエリをお探しですか。

SELECT   CASE
    WHEN TO_CHAR(your_date, 'hh24') > 12
    THEN TRUNC(your_date)+ 19/24
    ELSE TRUNC(your_date)+ 7/24
  END
FROM your_table;
于 2013-09-19T05:26:45.173 に答える