ACCESS DB 2013 中 SELECT 查询中的奇怪问题

Weird issue in SELECT query in ACCESS DB 2013

我正在尝试根据两者之间的 TransactionDAte 从 table 中获取数据。 table 中已有条目。但我仍然没有得到预期的结果。

每日库存情况Table

ID  PartNumber  Quantity    PalletNo    InvoiceNo   TransactionDate IsAdd IsRestore
23  F005.V01.639-24V    250 1111                      3/16/2016 Yes No
24  F005.V01.639-24V    120 2222                      3/16/2016 Yes No
25  F005.V01.639-24V    170 1111          3333        3/16/2016 No  Yes

SELECT TransactionDate,PartNumber,IsAdd, SUM(Quantity) AS Qty FROM InventoryDailyFacts 
WHERE TransactionDate Between Format(#16/03/2016#,'dd/mm/yyyy') And Format(#16/03/2016#,'dd/mm/yyyy')  
GROUP BY TransactionDate, PartNumber,IsAdd 
ORDER BY TransactionDate desc

零行受影响

这确实是典型的 Access 怪癖。 虽然它是有效的 SQL 并且可以在其他 RDBMS 上工作,但如果您定义相同的日期

在 Access BETWEEN/AND 中不起作用

如果您真的想要相同日期的范围,请添加时间:

SELECT TransactionDate,PartNumber,IsAdd, SUM(Quantity) AS Qty FROM InventoryDailyFacts 
WHERE TransactionDate Between format(#16/03/2016 00:00:00#, 'dd/mm/yyyy hh:nn:ss') AND format(#16/03/2016 23:59:59#, 'dd/mm/yyyy hh:nn:ss')
GROUP BY TransactionDate, PartNumber,IsAdd 
ORDER BY TransactionDate desc

您必须正确设置日期表达式的格式,或者在您有值时直接使用它:

SELECT TransactionDate,PartNumber,IsAdd, SUM(Quantity) AS Qty 
FROM InventoryDailyFacts 
WHERE TransactionDate Between #03/16/2016# And #03/16/2016#  
GROUP BY TransactionDate, PartNumber,IsAdd 
ORDER BY TransactionDate desc

或者简单地说:

SELECT TransactionDate, PartNumber, IsAdd, SUM(Quantity) AS Qty 
FROM InventoryDailyFacts 
WHERE TransactionDate = Date()
GROUP BY TransactionDate, PartNumber, IsAdd 
ORDER BY TransactionDate desc

或者,如果 TransactionDate 可能有时间部分:

SELECT TransactionDate, PartNumber, IsAdd, SUM(Quantity) AS Qty 
FROM InventoryDailyFacts 
WHERE Fix(TransactionDate) = Date()
GROUP BY TransactionDate, PartNumber, IsAdd 
ORDER BY TransactionDate desc

或者,如果 TransactionDate 是文本,而不是数据类型 Date:

SELECT TransactionDate, PartNumber, IsAdd, SUM(Quantity) AS Qty 
FROM InventoryDailyFacts 
WHERE DateValue(TransactionDate) = Date()
GROUP BY TransactionDate, PartNumber, IsAdd 
ORDER BY TransactionDate desc