MySQL ruft Datum und Datumsbereich für ein bestimmtes Datum ab (Syntaxfehler)
P粉637866931
P粉637866931 2024-02-25 19:51:13
0
1
320

Das ist mein vollständiger Code, aber wenn ich ihn starte,

DECLARE @StartDateTime DATETIME
DECLARE @EndDateTime DATETIME

SET @StartDateTime = '2022-04-01'
SET @EndDateTime = '2022-04-29';

WITH DateRange(Dates, DateWD) AS 
(
    SELECT @StartDateTime as Date, DATEPART(WEEKDAY, @StartDateTime) 
    UNION ALL
    SELECT DATEADD(d,1,Dates), DATEPART(WEEKDAY, DATEADD(d,1,Dates)) 
    FROM DateRange 
    WHERE Dates < @EndDateTime
)

SELECT Dates, DateWD
FROM DateRange 
 WHERE DATEWD NOT IN(1,7) AND Dates NOT IN(
 SELECT (HOLI_YEAR + '-' + HOLI_MONTH + '-' + HOLI_DAY) AS DATE
 FROM TB_HOLIDAY_CODE

OPTION (MAXRECURSION 0)

Dieser Fehler tritt auf.

Ich möchte eine Liste mit Terminen für April 2022 anzeigen (außer sonntags und samstags)

Zum Beispiel ist das Startdatum der 01.04.2022 Enddatum 30. April 2022

Die Ergebnisse liegen vor->

Datum Datum WD
01.04.2022 (Freitag)
04.04.2022 (Montag)
05.04.2022 (Dienstag)
06.04.2022 (Mittwoch)
07.04.2022 (Donnerstag)
08.04.2022 (Freitag)
11.04.2022 (Montag)
.... ...

Wie kann dieser Code behoben werden? Bitte hilf mir. Danke

*** Ich weiß nicht, wie man Formulare verwendet. Weil ich keine Tabelle habe und nur SQL QUERY verwenden möchte.

P粉637866931
P粉637866931

Antworte allen(1)
P粉575055974

语法错误是因为该示例是为 SQL Server 编写的,而不是为 MySQL 编写的。它需要一些调整才能与 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。来自文档: p>

SQL

SET @StartDateTime = '2022-04-01';
SET @EndDateTime = '2022-04-29';


WITH RECURSIVE DateRange(Dates, DateWD) AS 
(
    SELECT @StartDateTime, DayOfWeek(@StartDateTime) 
    UNION ALL
    SELECT DATE_ADD(Dates, INTERVAL 1 DAY), DayOfWeek(DATE_ADD(Dates, INTERVAL 1 DAY)) 
    FROM  DateRange 
    WHERE Dates 

结果:

日期 日期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小提琴此处 p>

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage