Sql 选择的DOB四舍五入至年份
我有程序Sql 选择的DOB四舍五入至年份,sql,sql-server-2008,procedure,dob,Sql,Sql Server 2008,Procedure,Dob,我有程序 create procedure sp_ChildrenOlderThan5Years as select clientid,firstName,MidInitial, LastName, address, city, 'AK' as 'State', zip,DATEDIFF(YEAR,dob,GETDATE()) as age from Clients where CategCode = 'CH' and StatusID in (1,2,6) and DATEDIFF(YEAR,
create procedure sp_ChildrenOlderThan5Years
as
select clientid,firstName,MidInitial, LastName, address, city, 'AK' as 'State', zip,DATEDIFF(YEAR,dob,GETDATE()) as age
from Clients
where CategCode = 'CH' and StatusID in (1,2,6) and DATEDIFF(YEAR,dob,GETDATE())>6
go
必须向我展示6岁以上的客户。然而,我刚刚发现这是他们的年龄,例如,如果客户出生于2007年7月20日,它仍然显示在列表中的客户,但他或她不是六岁。我知道DATEDIFF(YEAR,dob,GETDATE())中的问题,但不知道如何解决。我只需要其中列出的年龄大于或等于5岁10个月的客户。由于您正在寻找年龄大于5岁10个月(或等于)的客户,请使用:
但是如何显示确切的年龄,例如在选择
DATEDIFF(YEAR,dob,GETDATE())中的5.8作为年龄,因为它向我显示所有的年龄都是6岁:)DATEDIFF将始终返回一个整数。您可以将datediff(month,dob,getdate())除以12得到5.8Thanx!!它仍然显示整数,但可以:)如果是6年或5年,至少会显示:)
datediff(month,dob,getdate()) >= 70