我们的数据记录器记录了一些不可处理的数据 记录仪记录10分钟的平均值 由于制造商设备的错误,它记录了一些带有跳跃分钟值的时间戳,如下所示
plantid Value Timestamp
1F617EDE-7B11-416A-B8D1-FDD566020E13 1.10000002384186 2013-10-26 06:02:00.000
1F617EDE-7B11-416A-B8D1-FDD566020E13 0.800000011920929 2013-10-26 08:56:00.000
如您所见,在第一个记录中有02,在第二个56分钟。 我必须将这些值修复回0(第1行)和第二行50英寸,以使数据可用于进一步处理和分析。所以10分钟的价值。
我尝试了以下
DECLARE @ttest DATETIME = '2013-10-26 08:56:00.000'
SELECT @ttest
SET @ttest = Dateadd(minute,-DATEPART(MINUTE, @ttest),@ttest)
SELECT @ttest
但结果将是2013-10-26 08:00:00.000,因为我计算减去56但我需要计算减去6
那么我怎样才能减去单个分钟值而不是56分
答案 0 :(得分:2)
您可以使用modulo %10
获取单位数分钟值:
Dateadd(minute, -DATEPART(MINUTE, @ttest) % 10, @ttest)
Modulo返回除法的余数,因此在56%10的情况下,余数将为6。
如果你需要删除秒/毫秒/纳秒,一种方法是链接几个dateadd操作,虽然我怀疑可能有更好的方法。