的结果datediff(ss, '01/01/1970', '12/31/2050')
is a bigint
so datediff
已经满溢了。
我怎样才能从bigint
如果 SQL 中日期的最大值为,则返回其等效日期并再次返回int
?
我需要能够存储之间的秒数01/01/1970
and 12/31/2050
在 SQL 中(我将其作为char
),但将该值转换为其日历日期以在网页中显示。
任何想法,将不胜感激。
谢谢你!
这会给你毫秒。轻松适应秒...
declare @dfrom datetime = '1970-01-01 16:15:33.021'
declare @dto datetime = '2058-01-01 15:00:55.557'
declare @diff bigint =
cast(DATEDIFF(d, @dfrom, @dto) as bigint) * 24 * 3600 * 1000
+ DATEDIFF(ms, cast(@dfrom as time), cast(@dto as time))
declare @dreverse datetime =
dateadd(ms, @diff % (1000 * 3600 * 24),
dateadd(day, @diff / (1000 * 3600 * 24), @dfrom))
select @dfrom as [From], @dto as [To], @diff as [Diff], @dreverse as [Reverse] for xml path('')
gives:
<From>1970-01-01T16:15:33.020</From>
<To>2058-01-01T15:00:55.557</To>
<Diff>2777064322537</Diff>
<Reverse>2058-01-01T15:00:55.557</Reverse>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)