DateValue函数和Group By:标准表达式中的数据类型不匹配



我正在使用Access 2010,并有一个表,如下所示,称为Table1(表是从Excel导入的,日期列格式为date那里):

date                      xy
---------------------------------
19.10.2016 14:10:51       jljh
19.10.2016 13:13:28       kgkhg
19.10.2016 12:53:15       asd

我已经接受了,我不能做正常的SQL的东西在访问。但是为什么下面这个简单的查询以错误data type mismatch in criteria expression结束呢?

SELECT DateValue(DATE) as dt, COUNT(CSID)
FROM Table1
GROUP BY DateValue(DATE)

首先,您可以在Access中执行"正常的SQL操作"。

那么,DateValue不接受dot作为日期分隔符,因此:

SELECT DateValue(Replace([DATE], ".", "/")) as dt, COUNT(*)
FROM Table1
GROUP BY DateValue(Replace([DATE], ".", "/")) 

你——也就是我——说这个表是从Excel导入的。所以回到Excel,在那里做日期截断,重新导入它,你的——那是我的——查询会像"正常"SQL一样运行。没有比这更直观的了。

EDIT:同时我也弄清楚了问题是什么:日期列中有未填充的值。因此,DateValue不知道如何处理它们,必须抛出异常。然而,仍然有点恼人的是,如果没有group by语句,这个错误就不会发生。所以这次只有50%是Access的错,另外一部分是我的错:-)

相关内容

最新更新