注册 登录
编程论坛 SQL Server论坛

求高手解答数据库时间问题

dhdhzzw 发布于 2008-03-28 13:28, 832 次点击
SQL数据库,时间为getdate()
有的时候数据库中只显示年月日如:2008-3-28
有时会显示2008-3-28 12:22:00 秒都无法正常显示
为什么?
有时会全显示  2008-3-28 13:22:22
怎么会这样?到底有没有一种固定的格式让他固定显示
2 回复
#2
provoke2008-03-28 14:35
getdate()的返回类型是datetime,形如2008-01-23 12:34:57.789,也就是年月日时分秒毫秒,其他定义为datetime类型的字段,其返回值也是这样形式。
一般来讲,不需要这么精确的时间值,觉得“毫秒”这部分是垃圾,甚至在只需要日期不需要时间的场合,觉得垃圾比有用数据还多:日期部分长度还不到一半。
要想使用自己喜欢的固定格式,可以自己转换,用convert()函数,还有year(),month(),day()函数。
比如,如果字段1是datetime类型的,可以这样:
select 日期=year(字段1)+'年'+month(字段1)+'月'+day(字段1)+'日'
结果类似于:2008年12月12日

至于中间的分隔符,可以用自己喜欢的:
select 日期=year(字段1)+'-'+month(字段1)+'-'+day(字段1)
2008-12-12

也可以自己重新排列年月日的顺序:
select 日期=month(字段1)+'/'+day(字段1)+'/'+year(字段1)
12/31/2008

如果不想每次查询都重新转换,就新建一个视图,在视图里保存这些查询转换,在需要查询的时候从视图里查询就省事多了。
#3
dhdhzzw2008-04-01 13:26
haode1
,xiexie
1