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

ORACLESQLの時間範囲

    時間形式をhh24:miに変換したと思います

    多分これは役立つかもしれません:

    with tab as(
    select 'date1' as dat,  '09:00' as  start_hour, '09:30' as end_hour from dual union all
    select 'date1' as dat,  '10:30' as  start_hour, '11:30' as end_hour from dual union all
    select 'date1' as dat,  '13:00' as  start_hour, '15:00' as end_hour from dual 
    )
    SELECT COUNT(*)
      FROM   tab
      WHERE  start_hour <= '09:10' --:new_end_hour
      AND    end_hour   >= '07:00' --:new_start_hour
      AND    dat = 'date1'
      ;
    

    または、betweenを使用できます 確認するにはstart_hour またはend_hour 値の間にある

    with tab as(
    select 'date1' as dat,  '09:00' as  start_hour, '09:30' as end_hour from dual union all
    select 'date1' as dat,  '10:30' as  start_hour, '11:30' as end_hour from dual union all
    select 'date1' as dat,  '13:00' as  start_hour, '15:00' as end_hour from dual 
    )
    SELECT COUNT(*)
      FROM   tab
      WHERE  ('09:00' between start_hour and end_hour
      or    '09:10' between start_hour and end_hour
      )
      AND    dat = 'date1'
      ;
    

    db <> fiddle こちら



    1. OracleSQLのBLOBからテキストコンテンツを取得するにはどうすればよいですか。

    2. pythonforループからmysqlに挿入中にエラーが発生しました

    3. Postgresデータベースでの独特のタイムゾーン処理

    4. OracleSQLを使用して行の最初の連続グループを選択する方法