Sql Datediff返回天数而非年份Access 2007
我有一列存储为日期/时间数据类型,我不想根据它计算年龄(以年为单位)。我正在使用Access 2007中的Sql Datediff返回天数而非年份Access 2007,sql,ms-access,Sql,Ms Access,我有一列存储为日期/时间数据类型,我不想根据它计算年龄(以年为单位)。我正在使用Access 2007中的DateDiff函数 SELECT Visits.ID, Visits.DOB, DateDiff("y",[DOB],[date]) AS age FROM Visits; 除了这个问题,我尝试在运行查询时使用[date]选择当前日期,但它只是提示我键入日期,并没有自动获取 DOB是每条记录的出生日期。为间隔参数指定“yyy”,而不是“y”。“yyy”是一年,“y”是一年中的一天。谢谢,
DateDiff
函数
SELECT Visits.ID, Visits.DOB, DateDiff("y",[DOB],[date]) AS age
FROM Visits;
除了这个问题,我尝试在运行查询时使用[date]选择当前日期,但它只是提示我键入日期,并没有自动获取
DOB是每条记录的出生日期。为间隔参数指定“yyy”,而不是“y”。“yyy”是一年,“y”是一年中的一天。谢谢,我会在五分钟内接受。你觉得用今天的日期来代替键入日期怎么样?当心
DateDiff(“yyyy”、“2010-12-31”、“2011-01-01”)
将返回1,即使差值仅为一天!是的,它计算Year(date2)-Year(date1)
。要回答问题的第二部分,请使用DATE()
,而不是[DATE],这样您将得到DateDiff(“yyyy”,“DOB],DATE())
您需要计算天数和月份,例如,对于今年出生的人,该表达式将返回0,因为它不会说明实际生日之后的时间段是的,Access认为[date]
是一个字段。方括号表示字段,并允许使用保留字(如[SELECT]
)或函数名(如[DateDiff]
)作为字段名。所有这些都是有用的QaD解决方案。谢谢