在Microsoft Azure SQL中截断日期?

时间:2018-08-15 18:51:33

标签: sql tsql azure-sql-database truncate

假设我有一个时间戳,并且我想将此时间戳截断为时间戳所在的一周中的周日开始的几分钟。在标准SQL中,我将执行以下操作:

timestamp_diff(created_at, timestamp_trunc(created_at, week), minute) 其中creared_at将是我拥有的时间戳,而week将是truncate函数将其截断到一周所需的参数。在Azure中怎么办?

1 个答案:

答案 0 :(得分:1)

我将以“时间戳”表示日期时间值的假设来回答这个问题。 Sql Server(和Azure)中的实际时间戳数据类型是rowversion数据类型的已弃用同义词,与实际日期或时间无关。

如果要处理日期时间值,则以下内容将为您提供@timestamp_to_truncate到上一个星期日凌晨12点之间的分钟数:

declare @timestamp_to_truncate datetime = getdate()

declare @sunday datetime = cast(dateadd(day,1-DATEPART(dw, @timestamp_to_truncate),cast(@timestamp_to_truncate as date)) as datetime)

select datediff(mi,@sunday,@timestamp_to_truncate)