【发布时间】:2014-01-13 12:38:10
【问题描述】:
如何只设置 SQL datetimeoffset 变量的时间部分?
例如:
DECLARE @date datetimeoffset = '2014-01-11 11:04:26 +02:00'
我想再计算两个日期时间偏移:
@startdate should be '2014-01-11 00:00:00 +02:00'
@enddate should be '2014-01-12 00:00:00 +02:00'
但我尝试的所有解决方案都将偏移量设置为零。
注意:我需要结果中的原始偏移量,因为我需要将它们与表中的某些 datetimeoffset 列进行比较。所以仅仅投射到一个日期是行不通的。
补充说明:这在 SQL2012 中会很容易;我可以使用 DATETIMEOFFSETFROMPARTS。不幸的是,我目前无法升级到 2012。示例:
SET @startdate = SELECT DATETIMEOFFSETFROMPARTS(datepart(yyyy, @date), datepart(mm, @date), datepart(dd, @date), 0, 0, 0, 0, datepart(tz, @date), 0, 7);
【问题讨论】:
-
如果要删除时间部分,请使用
cast(@startdate as date)。 -
你能清楚地写出你试图执行的代码和你期望的确切结果吗?
标签: sql-server sql-server-2008 tsql datetimeoffset