加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用sql语句,由出生日期获得年龄,日期差DATEDIFF(),获取当前系统时间GETDATE()

(2012-07-30 13:59:09)
标签:

getdate()

convert

杂谈

分类: SQL

例:查询Student表中每个学生的姓名和年龄。 GETDATE()獲取當前時間.

1.方法一

END

BEGIN

DECLARE @NOW varchar(5)

SET @NOW =CONVERT(varchar(100), GETDATE(),112)
SELECT SNAME,(CONVERT(int, SUBSTRING(@NOW ,1,4))-
                CONVERT(int,SUBSTRING(
                         CONVERT(varchar(100),SBIRTHDAY,112),1,4))
               )as AGE
FROM STUDENT
END

ps:"Select CONVERT(varchar(100), GETDATE(), 112)"输出的格式是:20080516,由于是年龄计算,只需要左数头四位,所以使用到SUBSTRING()截取,再将其用CONVERT()转换为相应的格式做加减.

 

CONVERT用法详见:http://hi.baidu.com/wxk0248/item/c8584a190ccbee4b6826bb75

 

 

2.方法二(更簡單,使用DATEDIFF())

BEGIN
SELECT SNAME,DATEDIFF(yy,SBIRTHDAY,GETDATE())as AGE FROM STUDENT
END

ps:DATEDIFF()函数计算两个指定日期(DATETIME格式)之间的日期差。

   DATEDIFF (date-part, date1, date2 ),结果为等于(date2 - date1)的有符号的整数值。

   這裡date-part年yy.  age=當前時間年份-生日年份.

  

DATEDIFF()用法詳見:http://www.w17x.com/AritcleDisplay.aspx?id=459

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有