ホームページ  >  に質問  >  本文

MySQL は特定の日付の日付と日付範囲を取得します (構文エラー)

これは私の完全なコードですが、起動すると、

リーリー

このエラーが発生します。

2022年4月の日付を一覧表示したい(日曜・土曜を除く)

例) 開始日は 2022-04-01 です 終了日 2022 年 4 月 30 日

結果が出ました->

###日付### 2022-04-01 ###(金曜日)### ###(月曜日に)### ###(火曜日)### 2022-04-06 ###(水曜日)### ###(木曜日)### ###(金曜日)### 2022-04-11 ###(月曜日に)### ...このコードを修正するにはどうすればよいですか?私を助けてください。ありがとう### *** テーブルの使い方がわかりません。テーブルがなく、SQL QUERYを使用したいだけであるためです。
P粉637866931P粉637866931237日前274

全員に返信(1)返信します

  • P粉575055974

    P粉5750559742024-02-26 11:23:47

    構文エラーは、この例が MySQL ではなく SQL Server 向けに書かれているためです。 MySQL 8.x で動作するには、いくつかの調整が必要です:

    1. DECLARE ユーザー定義変数は必要ありません。 SET を使用して変数値を宣言して代入するだけです

    2. DATEADD() は SQL Server 関数です。 MySQL に相当するのは DATE_ADD(日付,INTERVAL 式単位)

      です。
    3. DATEPART(weekday,...) は SQL Server 関数です。 MySQL の場合は、DAYOFWEEK(date)

      を試してください。
    4. 最後に、CTE でキーワード RECURSIVE を使用します。 ドキュメントより:

    SQL

    SET @StartDateTime = '2022-04-01';
    SET @EndDateTime = '2022-04-29';
    
    
    WITH RECURSIVE DateRange(Dates, DateWD) AS
    (
        SELECT @StartDateTime、DayOfWeek(@StartDateTime)
        すべてを結合する
        SELECT DATE_ADD(日付, 1 日間隔), DayOfWeek(DATE_ADD(日付, 1 日間隔))
        FROM DateRange
        WHERE 日付 < @EndDateTime
    )
    SELECT * 
    FROM   DateRange
    WHERE  DateWDNOT IN(1,7)
    ######結果:######
  • 日付WD
    2022-04-04
    2022-04-05
    2022-04-07
    2022-04-08
    ....
    ###日付### 2022-04-012022-04-042022-04-052022-04-062022-04-072022-04-082022-04-112022-04-122022-04-132022-04-142022-04-152022-04-182022-04-192022-04-202022-04-212022-04-222022-04-252022-04-262022-04-272022-04-282022-04-29
    日付WD
    6
    2
    3
    4
    5
    6
    2
    3
    4
    5
    6
    2
    3
    4
    5
    6
    2
    3
    4
    5
    6
    db

    ヴァイオリンこちら<>

    返事
    0
  • キャンセル返事