(1)本来生日期不应该有时分秒,但SQL SERVER 2005 没这种类型,只有DATATIME,SMALLDATETIME,插数据的时候多了00:00:00,也太难看啦,网上找了很久,可惜还没有找着,还好在输出可以做的手脚,要不然前端语言还好做处理,忒麻烦,可以使用convert,为时间输出格式而设计的,

convert(varchar(20),sbirthday,23)  // varchar(10)  输出的字符数,sbirthday 数据库属性, 23 输出的时间格式 (还很多格式)  sbirthday SMALLDATETIME

sql 语言句:select s_no, sname, sex, convert(varchar(20),sbirthday,23) sbirthday  from student

结果如下:

   注意varchar(20),证明格式23:yy-mm-dd

(2)输出年龄

不小心可能会出现用2010-YEAR(sbirthday),在今年来说没有错,明年就是个问题,难道改成2011?

还有一种可能是这样:YEAR(GETDATE() - sbirtyday,出结果怎么会有四位呢,原来SMALLDATETIME默认是1900,当结果为两位的时候,系统会提供免费的服务,前这两位数前面加上19.

SQL SERVER 2005 的时间函数:DATEAIFF(datepart, startdate, enddate)返回跨两个指定日期之间的日期和时间差值    sql 语言句:select s_no, sname, datediff(yy, sbirthday, getdate()) as age from student //yy可以是其它格式

       结果:

 

 这样好看多啦。。。

 

 

 

 

posted on 2010-05-02 17:33  ALVINZ  阅读(266)  评论(0)    收藏  举报