Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Datediff返回天数而非年份Access 2007_Sql_Ms Access - Fatal编程技术网

Sql Datediff返回天数而非年份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”是一年中的一天。谢谢,

我有一列存储为日期/时间数据类型,我不想根据它计算年龄(以年为单位)。我正在使用Access 2007中的
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解决方案。谢谢