从给定的DateTimeOffset创建DateTimeOffset 00:01 / 23:59当天

时间:2013-03-11 11:41:30

标签: sql sql-server datetimeoffset

警告 - 未来的TSQL新手问题:

我有一个DateTimeOffset,比如2013-03-11 11:04:26.0000000 +00:00,我需要在同一天创建两个新日期,一个在00:01,另一个在23:59。

到目前为止,我已尝试使用DATETIMEOFFSETFROMPARTSDATEPART进行各种操作,但似乎有点尴尬 - 是否有一个简单的解决方案剪掉小时/分钟/等等并且只用一天用两个必需的时间替换时间?

任何提示都表示赞赏。

2 个答案:

答案 0 :(得分:1)

得到了......

select @pkgDate = CONVERT (date, @pkgDate)

select DATEADD (minute, 1, @pkgDate)
select DATEADD(hour, 23, DATEADD (minute, 59, @pkgDate))

..更好/更简洁的方式仍然赞赏。

答案 1 :(得分:1)

您也可以尝试此选项

DECLARE @date datetimeoffset = '2013-03-11 11:04:26.0000000 +00:00'
SELECT DATEADD(day, DATEDIFF(day, 0 , @date), '00:01'), 
       DATEADD(day, DATEDIFF(day, 0 , @date), '23:59') 

--Results:2013-03-11 00:01:00.000   2013-03-11 23:59:00.000