Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从当天给定的DateTimeOffset创建DateTimeOffset 00:01/23:59_Sql_Sql Server_Datetimeoffset - Fatal编程技术网

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

Sql 从当天给定的DateTimeOffset创建DateTimeOffset 00:01/23:59,sql,sql-server,datetimeoffset,Sql,Sql Server,Datetimeoffset,警告-TSQL新手前面有问题: 我有一个日期时间偏移量,比如说,2013-03-11 11:04:26.0000000+00:00,我需要为同一天创建两个新日期,一个在00:01,另一个在23:59 到目前为止,我已经尝试过使用DATETIMEOFFSETFROMPARTS和DATEPART的各种方法,但这似乎有点尴尬-有没有简单的解决方案来缩短小时/分钟/等,只使用一天的时间来替换两个必需的时间 感谢您的任何提示。收到了 select @pkgDate = CONVERT (date, @pk

警告-TSQL新手前面有问题:

我有一个日期时间偏移量,比如说,
2013-03-11 11:04:26.0000000+00:00
,我需要为同一天创建两个新日期,一个在00:01,另一个在23:59

到目前为止,我已经尝试过使用
DATETIMEOFFSETFROMPARTS
DATEPART
的各种方法,但这似乎有点尴尬-有没有简单的解决方案来缩短小时/分钟/等,只使用一天的时间来替换两个必需的时间

感谢您的任何提示。

收到了

select @pkgDate = CONVERT (date, @pkgDate)

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

…更好/更简洁的方法仍然值得赞赏。

您也可以尝试此选项

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

看一看,也许它很有用。与其计算这些奇怪的日期——如果它们是为了比较,不如更改比较操作(即,人们经常试图获取某一天的“最后一刻”,而忽略可能在最后一分钟(或第二分钟)发生的事情)所以23:59不包括这些事件)。不幸的是,使用
我们应该创建这些日期时间来表示应用程序其他部分的时间窗口-根本不涉及比较。。