数据库年龄字段存的是出生日期 1981-12-23string str = @"select name, age from dbus ";查询年龄 显示在dataGridView上, 需要把1981-12-23 转换成这个人的当前岁数: 28请教方法:
解决方案 »
- C# winfrom时间输入,有没有图形化时间输入控件,象日历那样的
- 如何打印清单(在线等待!)
- COM+服务的自动事务处理大家帮我看看
- 请写一个触发器,当服务器数据库中T1表的数据发生变化时就自动向其所有客户端发什么信息。
- 如何在IE上直接向服务器提交xml格式的数据
- FindWindowEx找不到窗口
- 程序在别人机器上不能运行,自己机器上可以,“application has generated an exception that could not be handled”
- 登录的一个问题,输入的用户名和密码与数据库中的验证完后.咋登录到下一页面?以前我用的是指针,还可以用什么?
- 怎样将textBox1清空?
- 请教: 怎么读取网卡的物理地址
- 在一个aspx页面的已知的位置用C#输出一段html
- 这段代码看不懂,请教。。。。。。在线等!
{
DateTime DS='1981-12-23 ' ;
DateTime DE='2009-1-13' ;//Now
return (DE.Year - DS.Year);
}
string str = @"select name, datediff(year,getdate(),age) as age from dbus ";
如果算虚岁的话,再+1
也可以用程序实现。写个函数,返回当前时间与数据库中字段的差值就可以了啊
int i = DateTime.Now.Year - Convert.ToDateTime(str).Year;
select YEAR(GETDATE())-YEAR(age) as age from dbus
!!!
SELECT Name, YEAR(GETDATE() - Birthday) - 1899 AS Age FROM dbus
这个可是算了虚岁的哦。
程序里
DateTime.Now.Year - Convert.ToDateTime(str).Year
SQL里
Convert(varchar(12),getdate(),112)-Convert(varchar(12),字段,112)
ID age names
1 1981-12-23 00:00:00 john
2 1986-08-11 00:00:00 tumao
---------------------------------------------------------------------------------------------------------
select DATEPART(year, GETDATE()) - (SELECT DATEPART(year,age) as age1 from dbus where ID=1)
得到结果28但,我这个SQL的话只能获取单个的记录。如数据库有多条记录,若要全部记录达到要求,需用for-sql!【看看大家还有什么解决办法】
SELECT DATEPART(year, GETDATE()) - datepart(year,cast('1981-12-23' as datetime))