asp.net sql 生日转年龄。

来源:百度知道 编辑:UC知道 时间:2024/06/19 12:55:10
比如我的数据库表userinfo中有一字段“birthday”为日期型,
我在asp.net(c#),重用到该字段,但我要把它转换为年龄显示在Gridview中,其他地方都没问题,确定是SQL语句的问题。
string sql1="select birthday as 生日 from userinfo"没问题;
string sql2="select datediff(year,birthday,getdate()) as 年龄 from userinfo"就不行啦;网上查了一些方法都不管!请高手指教。
如果能精确点算年龄就更好啦!谢谢。
会有奖励分的。。。嘻嘻
birthday 是用的smalldatetime(短日期型),ACCESS

getdate()是SQL Server里面的,Access里面用 now
datediff的第一个参数在SqlServer里面不需要单引号,但是在Access里面是需要单引号的
datediff第一个参数计算年,在sqlserver里面用year,但是在Access里面是yyyy

综上所述,正确的语句应该是:

select datediff('yyyy',birthday,now) as 年龄 from userinfo

试一下这个:
string sql2="select datediff('yyyy',birthday,now()) as 年龄 from userinfo

c# 我不熟悉,给你个思路 Cint(now()-(CDate(birthday)))/365 就是年龄了

birthday 是用smalldatetime吗 你的查询语句没错啊 ,我试过了,是不是别的地方有问题啊
比如说数据库的链接等

birthday 字段有问题吧?