读书人

怎么让毫秒进行四舍五入到秒

发布时间: 2012-01-23 21:57:28 作者: rapoo

如何让毫秒进行四舍五入到秒?
没办法,没找到一个更好办法,除了单独毫秒进行单独处理后,再判定是否可五入。

事因起头是:要判断一个总分数据库的一致性,总部记录中的日期保存是的“2011-12-12 20:04:26.000”;而分部记录中的日期保存的“2011-12-12 20:04:25.687”。


如何让两者认为是一致的

[解决办法]

SQL code
select getdate(),convert(varchar(19),dateadd(ms,500,getdate()),120)/*----------------------- -------------------2011-12-12 22:30:19.060 2011-12-12 22:30:19(1 行受影响)                        ----------------------- -------------------2011-12-12 22:30:30.967 2011-12-12 22:30:31(1 行受影响)*/
[解决办法]
SQL code
declare [date] datetime='2011-12-12 20:04:25.687'select (case datepart(ms,[date])>500 then dateadd(ss,1,[date]) else [date] end)
[解决办法]
探讨
SQL code
declare [date] datetime='2011-12-12 20:04:25.687'
select (case datepart(ms,[date])>500 then dateadd(ss,1,[date]) else [date] end)

[解决办法]
SQL code
declare @x1 datetime2,@x2 datetime2declare @y1 datetime,@y2 datetimeselect @x1='2011-12-12 20:04:25.499',@x2='2011-12-12 20:04:25.501'select @y1=dateadd(s, case when datepart(ms,@x1)<500 then 0 else 1 end, cast(convert(varchar,@x1,23)+' '+convert(varchar,@x1,108) as datetime)),@y2=dateadd(s, case when datepart(ms,@x2)<500 then 0 else 1 end, cast(convert(varchar,@x2,23)+' '+convert(varchar,@x2,108) as datetime))select @y1 'y1',@y2 'y2'y1                      y2----------------------- -----------------------2011-12-12 20:04:25     2011-12-12 20:04:26(1 row(s) affected) 

读书人网 >SQL Server

热点推荐