sql >> データベース >  >> RDS >> Oracle

昨日の午後5時から今日の午後5時までのレコードを今日の日付にグループ化するにはどうすればよいですか。

    午後5時から午後5時を「同じ」日として扱いたい場合は、Oracleの日付を1日の端数で前後にシフトするのは簡単です(たとえば、午後5時を7時間前にシフトして、「次の」の開始にすることができます)。日)

    SQL> create table ora_table (id number, time_data timestamp, status varchar2(30));
    
    Table created.
    
    SQL> insert into ora_table values (1  , to_timestamp('2019-10-20 12:34:56.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (1  , to_timestamp('2019-10-22 12:34:56.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (2  , to_timestamp('2019-10-20 17:34:56.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (2  , to_timestamp('2019-10-21 12:34:56.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (3  , to_timestamp('2019-10-23 18:10:10.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'mod_in_ip');
    
    1 row created.
    
    SQL> insert into ora_table values (3  , to_timestamp('2019-10-24 11:10:10.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (3  , to_timestamp('2019-10-24 12:10:10.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (4  , to_timestamp('2019-10-25 12:10:10.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL> insert into ora_table values (4  , to_timestamp('2019-10-25 18:10:10.000', 'yyyy-mm-dd hh24:mi:ss.ff'), 'approved');
    
    1 row created.
    
    SQL>
    SQL> select id, time_data, trunc(time_data) true_date, trunc(time_data+7/24) mapped_date
      2  from ora_table;
    
            ID TIME_DATA                          TRUE_DATE MAPPED_DA
    ---------- ---------------------------------- --------- ---------
             1 20-OCT-19 12.34.56.000000 PM       20-OCT-19 20-OCT-19
             1 22-OCT-19 12.34.56.000000 PM       22-OCT-19 22-OCT-19
             2 20-OCT-19 05.34.56.000000 PM       20-OCT-19 21-OCT-19 <===
             2 21-OCT-19 12.34.56.000000 PM       21-OCT-19 21-OCT-19
             3 23-OCT-19 06.10.10.000000 PM       23-OCT-19 24-OCT-19 <===
             3 24-OCT-19 11.10.10.000000 AM       24-OCT-19 24-OCT-19
             3 24-OCT-19 12.10.10.000000 PM       24-OCT-19 24-OCT-19
             4 25-OCT-19 12.10.10.000000 PM       25-OCT-19 25-OCT-19
             4 25-OCT-19 06.10.10.000000 PM       25-OCT-19 26-OCT-19
    
    9 rows selected.
    


    1. LOAD DATA LOCAL INFILEは、PDOを使用したphp5.5からは機能しません

    2. 予算内で読み取り可能なセカンダリ

    3. 挿入が機能しているときにBLOB列を更新する方法、エラーORA-00932

    4. SQLServer-ストアドプロシージャをあるデータベースから別のデータベースにコピーします