繁体   English   中英

日期-Access中条件表达式中的数据类型不匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM