Вопрос: T-SQL Azure Stream Analytics округляется до минуты


У меня есть следующий оператор SELECT в моем запросе Analytics Azure Stream:

SELECT DateAdd(mi, DateDiff(mi, 0, DateAdd(s, 30, Max(timecreated))), 0) as 'timestamp'

Который дает следующую ошибку:

Второй параметр «DateDiff» в выражении «DateDiff (mi, 0, DateAdd (s, 30, Max (timecreated))) имеет недопустимый тип« bigint ». Ожидается 'datetime'.

По общему признанию, код, который я использую, копируется из нескольких похожих потоков в StackOverflow, таких как T-SQL datetime округляется до ближайшей минуты и ближайших часов с использованием функций , но я не знаю, что изменить 0 в моем сценарии.


4


источник


Ответы:


Он должен был автоматически отбрасывать 0 из bigint в datetime, но могут быть некоторые причуды с Azure-версией T-SQL. Вместо этого используйте:

SELECT DATEADD(mi, 
  DATEDIFF(mi, CAST('1900-01-01 00:00:00.000' AS DateTime), 
    DATEADD(s, 30, MAX(timecreated))),
  CAST('1900-01-01 00:00:00.000' AS DateTime)) as 'timestamp'

3