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

Oracle SQl Dev、2つの日付の間の平日の数を計算する方法

    この回答はNicholasの回答に似ていますが、CONNECT BYを含むサブクエリが必要なため、驚くことではありません。 日付のリストをスピンアウトします。曜日を確認しながら、日付をカウントできます。ここでの違いは、結果の各行で平日のカウント値を取得する方法を示していることです。

    SELECT
      FromDate,
      ThruDate,
      (SELECT COUNT(*)
         FROM DUAL
         WHERE TO_CHAR(FromDate + LEVEL - 1, 'DY') NOT IN ('SAT', 'SUN')
         CONNECT BY LEVEL <= ThruDate - FromDate + 1
      ) AS Weekday_Count
    FROM myTable
    

    カウントには包括的です。つまり、FromDateが含まれます。 およびThruDate 。このクエリは、日付に時間コンポーネントがないことを前提としています。もしそうなら、TRUNCする必要があります サブクエリの日付列。



    1. selectでシーケンス番号を生成します

    2. PHPを使用してMySQLデータベースからレコードを取得し、ドロップダウンリストに入力します

    3. MySQL InnoDBは影響を受ける行のみをロックしますか?

    4. クロス結合を使用することと、2つのテーブルの間にコンマを入れることの違いは何ですか?