![](/img/trans.png)
[英]Comparing Date Values in Access - Data Type Mismatch in Criteria Expression
[英]Date - Data type mismatch in criteria expression in Access
我有一个表,将生日存储在DateValueOf
字段中。 我正在创建一个查询,用户可以在其中输入任何日期,并且该查询将返回当天有生日的客户。
为此,我试图将DateValueOf
所有年份转换为当前年份。
eg > #13-10-1996# to #13-10-2016#
eg > #13-10-2001# to #13-10-2016#
这样,我将要求用户从日期选择器中选择日期并运行以下查询。
SELECT CustomerID
WHERE FormatDateTime(DateValue(DateSerial(Year(Date()),Month([DateValueOf]),Day([DateValueOf]))),2) >= #13-10-2016#
但是此SQL语句
data type mismatch in criteria expression
产生错误data type mismatch in criteria expression
请强调我的错误。 提前致谢。 我也乐于接受任何其他方式来获取今天的生日。
假设您从日期选择器控件(称为: myDatePicker
)收到日期,则由Date()
返回的今天的日期是不相关的。
并且除非您想要年龄,否则Year()
也不相关。
SELECT CustomerID
FROM MyTableName
WHERE Month(myDatePicker) = Month([DateValueOf]) AND Day([DateValueOf]) = Day([myDatePicker])
如果您希望客户在这个生日那天的年龄,可以将计算结果添加到SELECT子句中:
SELECT CustomerID, Year(myDatePicker) - Year(DateValueOf) As CustomerAge
FROM MyTableName
WHERE Month(myDatePicker) = Month([DateValueOf]) AND Day([DateValueOf]) Day([myDatePicker])
不必担心格式化日期,只需使用日期比较即可:
SELECT CustomerID
WHERE DateSerial(Year(Date()),Month([DateValueOf]),Day([DateValueOf]))
>= #13-10-2016#
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.