我已经搜索过,但无法弄清楚。很多年前,我曾经使用MS Access,但现在大多改用PHP和MySQL来完成我的工作。但是当我在工作时,我必须使用这些资源。
尝试从ODBC连接到SQL Server建立基本查询。列之一是日期字段(SQL Server字段类型:datetime)。
构建查询并为Where子句输入Date()时,不会产生任何结果。
SELECT dbo_Order.OrderStatusID,
dbo_Order.FillerOrderNumber,
dbo_Order.RelevantClinicalInfo,
dbo_Order.ReasonForStudy,
dbo_Order.ProcedureDescList,
dbo_Order.PlacerFld2 AS Modality,
dbo_Order.ScheduleDate,
dbo_Order.ExplorerStatus,
dbo_Order.SiteID
FROM dbo_Order
WHERE (
(
(dbo_Order.PlacerFld2) = "CRFL"
OR (dbo_Order.PlacerFld2) = "CT"
OR (dbo_Order.PlacerFld2) = "SAMR"
)
AND ((dbo_Order.ScheduleDate) = DATE ())
AND ((dbo_Order.ExplorerStatus) = "SCHEDULED")
AND ((dbo_Order.SiteID) = 1)
);
我也尝试过执行类似Date:Format([ScheduleDate],“ dd / mm / yyyy”)的操作,但这也不会返回任何结果。
MS Access 2016 SQL Server 2008
答案 0 :(得分:1)
如果ScheduleDate包含任何时间值,则Date()将默认返回1/1/2018 00:00,因此,如果您的预定日期为1/1/2018 04:34:00,则该日期将不匹配。
尝试使用DateValue([ScheduleDate])仅返回日期
答案 1 :(得分:1)
我希望:
dbo_Order.ScheduleDate >= Date() AND dbo_Order.ScheduleDate < Date() + 1
DateValue([ScheduleDate])
必须在每一行上进行计算,并且不能使用索引(如果有)来影响大数据查询性能。请参见Access query won't work when dates have times。此外,DateValue无法处理NULL值。