MS Access Date()没有结果

时间:2018-07-10 15:09:57

标签: sql datetime ms-access ms-access-2016

我已经搜索过,但无法弄清楚。很多年前,我曾经使用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

2 个答案:

答案 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值。