ms-access - 您如何在 MS Access 查询中格式化日期以防止美国/英国问题

标签 ms-access date

如何确保在 Access 查询中过滤日期时选择正确数量的记录:

SELECT ID, REF, SalesDate, DCount("ID","tblRecords"," Ref='" & [Ref] & "' AND [SalesDate]=#" & format([SalesDate],"yyyy/mm/dd") & "#") as EXPR1 from tblCurrent 

如果它不会被误解,例如 28-04-12,它会选择日期,但如果它是 04-06-12,它不会选择它,因为它假设它是错误的方式。

请注意,此查询不是即时创建的,也不是从表单等生成的...

最佳答案

我在 VBA 中使用 yyyy/mm/dd 作为日期:

#" & Format([SalesDate],"yyyy/mm/dd") & "#"

或参数,用于构建查询。

编辑附加信息

看你用的是SQL server,我建议你用派生表,你会发现这样更快,例如:

SELECT dbo_Table_1.ADate, ACount FROM dbo_Table_1
LEFT JOIN (SELECT a.ADate,Count(*) As ACount 
           FROM  dbo_Table_1 As a GROUP BY a.ADate) b
ON dbo_Table_1.Adate=b.ADate

编辑重新讨论

SELECT * FROM dbo_vwRecordsCurrent As t 
LEFT JOIN (
   SELECT a.OpptyIncentiveModifiedDate, a.DataSetID, Count(*) AS ACount 
   FROM dbo_vwRecordsHistorical AS a 
   WHERE a.OpportunityIgnored = True 
   GROUP BY a.OpptyIncentiveModifiedDate, a.DataSetID) AS h 
ON t.OpptyIncentiveModifiedDate = h.OpptyIncentiveModifiedDate 
AND t.DataSetID = h.DataSetID

我给你的表起了别名,因为名字很长,所以对我来说,在外部 sql 上使用别名更具可读性。它们在内部sql中是必不可少的。使用现有表的名称为派生表起别名不是一个好主意。

关于ms-access - 您如何在 MS Access 查询中格式化日期以防止美国/英国问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609944/

相关文章:

java - 使用 vector 从数据库填充 JTable 并在最后一列中显示复选框

php - MySQL 查询日期接近 "today' s"date 的行

python - 使用 pyODBC 连接到 ODBC

php - 用php从mdb文件中读取数据

python - 在 Python 中解析人类格式的日期范围

html - 如何从日期输入字段中删除不需要的标记?

firebase - 如何将 Firestore 日期对象映射到 elasticsearch 中的日期

bash - osx 星期一日期本周 bash

vba - 将 Access 查询结果导出到 csv

ms-access - Access VBA - 如何将记录集中的值从文本转换为数字?