MySQL は特定の日付の日付と日付範囲を取得します (構文エラー) これは私の完全なコードですが、起動すると、
リーリー
このエラーが発生します。
2022年4月の日付を一覧表示したい(日曜・土曜を除く)
例) 開始日は 2022-04-01 です
終了日 2022 年 4 月 30 日
結果が出ました->
###日付###
日付WD
2022-04-01
###(金曜日)###
2022-04-04
###(月曜日に)###
2022-04-05
###(火曜日)###
2022-04-06
###(水曜日)###
2022-04-07
###(木曜日)###
2022-04-08
###(金曜日)###
2022-04-11
###(月曜日に)###
....
...
このコードを修正するにはどうすればよいですか?私を助けてください。ありがとう###
*** テーブルの使い方がわかりません。テーブルがなく、SQL QUERYを使用したいだけであるためです。 全員に返信(1)返信します P粉575055974 2024-02-26 11:23:47
構文エラーは、この例が MySQL ではなく SQL Server 向けに書かれているためです。 MySQL 8.x で動作するには、いくつかの調整が必要です:
DECLARE
ユーザー定義変数 は必要ありません。 SET
を使用して変数値を宣言して代入するだけです
DATEADD()
は SQL Server 関数です。 MySQL に相当するのは DATE_ADD(日付,INTERVAL 式単位)
です。
DATEPART(weekday,...)
は SQL Server 関数です。 MySQL の場合は、DAYOFWEEK(date)
を試してください。
最後に、CTE でキーワード RECURSIVE
を使用します。 ドキュメント より: p>
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-01
6
2022-04-04
2
2022-04-05
3
2022-04-06
4
2022-04-07
5
2022-04-08
6
2022-04-11
2
2022-04-12
3
2022-04-13
4
2022-04-14
5
2022-04-15
6
2022-04-18
2
2022-04-19
3
2022-04-20
4
2022-04-21
5
2022-04-22
6
2022-04-25
2
2022-04-26
3
2022-04-27
4
2022-04-28
5
2022-04-29
6
db
ヴァイオリンこちら<>
返事
0
キャンセル 返事 公開