В нашем регистраторе данных записаны некоторые необрабатываемые данные.
Регистратор регистрирует 10 минут средних значений.
Из-за ошибки фабриканта устройства он записал некоторые временные метки со значениями прыжковых минутных нравится следующим
Обновить дату-время timestamp минутное значение
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
Так как можно вычесть только одну минуту значение 6 вместо 56
безупречный, спасибо. это работает – veritaS
Что делать, если метка времени содержит также секунды и миллисекунды? Кажется, что OP хочет урезать остальных. –
@TimSchmelter Тогда миллисекунды, или секунды в этом случае, будут сохранены и должны быть усечены; возможно, преобразование datetime в float и выполнение арифметики было бы лучше. OP только говорит о прыгающих минутах, хотя, возможно, это не проблема в данном конкретном случае. – jpw