(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可以是其它格式
结果:

这样好看多啦。。。
浙公网安备 33010602011771号