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

ORA-00936oracleselect文でdate関数を使用する場合

    the_dateが必要な場合 実際の日付としてのフィールド:

    select trunc(date '1970-01-01' + datetimeorigination / (24*60*60)) as the_date,
      to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'HH24') as the_hour,
      count(record_id)
    from table_a
    group by trunc(date '1970-01-01' + datetimeorigination / (24*60*60)),
      to_char(date '1970-01-01' + datetimeorigination / (24*60*60), 'HH24');
    
    THE_DATE  THE_HOUR COUNT(RECORD_ID)
    --------- -------- ----------------
    24-SEP-13 14                      1 
    20-SEP-13 18                      1 
    

    時間の値を数値として使用する場合は、そのフィールドをto_number()でラップできます。 電話。これが表示用の場合は、日付も明示的にフォーマットする必要があります:

    select to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'YYYY-MM-DD') as the_date,
      to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'HH24') as the_hour,
      count(record_id)
    from table_a
    group by to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'YYYY-MM-DD'),
      to_char(date '1970-01-01' + datetimeorigination / (24*60*60), 'HH24');
    
    THE_DATE   THE_HOUR COUNT(RECORD_ID)
    ---------- -------- ----------------
    2013-09-24 14                      1 
    2013-09-20 18                      1 
    

    または、日付と時刻を1つのフィールドにまとめて:

    select to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'YYYY-MM-DD HH24') as the_hour,
      count(record_id)
    from table_a
    group by to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
        'YYYY-MM-DD HH24');
    
    THE_HOUR      COUNT(RECORD_ID)
    ------------- ----------------
    2013-09-24 14                1 
    2013-09-20 18                1 
    

    何を見たいか、何をするかによって異なります。

    集計に使用するフィールドがどれであっても、group byで同じ方法で指定する必要があります。 句-位置表記を使用することはできません。例: group by 1, 2betweenにすでに気づいていましたか? 値は昇順である必要があります。そうでない場合、何も見つかりません。




    1. mysqlの日付形式の月から1を引く方法は?

    2. PHP関数は1回だけ機能します

    3. 文字列の角括弧をoracleREGEXP_REPLACE関数に置き換える

    4. SQLループのカーソルに代わるものは何ですか?