【发布时间】:2019-06-25 02:26:42
【问题描述】:
我只想显示 2019 年 5 月 15 日至 23 日之间的数据。但为什么它还返回不在日期范围内的数据?
以下是我的查询
SELECT Appointment_ID,
WO_DespatchName, Despatch_Name AS WO_selectDespatchName,
FORMAT(Appointment_DateTime, 'dd/MMM/yyyy hh:mm tt') AS Appointment_DateTime,
FORMAT(Appointment_ProposalSent, 'dd/MMM/yyyy') AS Appointment_ProposalSent,
WO_MaidName, Maid_Name AS WO_selectMaidName,
Appointment_Location, Appointment_FaceToFace, Appointment_Service, Appointment_Remarks, WO_Duration,
Appointment_ContactID, Contact_Name AS Appointment_selectContactID
FROM Appointments A
LEFT JOIN Despatch ON Despatch_ID = WO_DespatchName
LEFT JOIN CustomerDetails ON Contact_ID = Appointment_ContactID
LEFT JOIN Maid ON Maid_ID = WO_MaidName
WHERE FORMAT(Appointment_DateTime, 'dd/MM/yyyy') BETWEEN '15/05/2019' AND '23/05/2019'
AND (A.IsDelete = 0 OR A.IsDelete IS NULL)
ORDER BY CONVERT(DateTime, Appointment_DateTime,101) ASC
我得到的输出是https://drive.google.com/file/d/1VnrSET1V1eoFvEUUtRwXtQmKGWamURgV/view?usp=sharing
【问题讨论】:
-
那是因为您正在进行字符串比较,而不是日期比较。在比较日期之前不要格式化日期。
-
因为您将数据作为格式为
dd/MM/yyyy的字符串进行比较。将WHERE子句更改为WHERE Appointment_DateTime >= '20190515' AND Appointment_DateTime < '20190524'
标签: sql-server