Как вычесть точное время отметки минут 00:15 в SQL за каждый день на сервере MS SQL? - PullRequest
0 голосов
/ 26 марта 2020

Я вычитаю дневные значения. Например, я получил:

       timestamp           value
2020-03-23 00:00:00.000    3000
2020-03-23 00:15:00.000    3100
2020-03-24 00:00:00.000    3500
2020-03-24 00:15:00.000    4000

и с:

SELECT tagtimeutc,description,tagname,unit,
    (   (LEAD (TagValue) OVER (order by tag_id,TagTimeUTC) -
            TagValue)),prik_sifr,tag_id
    FROM vwDMData
    where TagTimeUTC=DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) and unit='m3'
       or TagTimeUTC=DATEADD(DAY, DATEDIFF(DAY, 1, GETDATE()), 0) and unit='m3'

Я получаю:

    date      value
2020-03-23    500

, но я хочу

    date      value
2020-03-23    900

(Так что вычитание находится в пределах 1d 00:15 значений) как:

value(2020-03-24 00:15:00.000) - value(2020-03-23 00:15:00.000)

Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 26 марта 2020

Просто исправьте where:

SELECT tagtimeutc, description, tagname, unit,
       (LEAD(TagValue) OVER (order by tag_id,TagTimeUTC) -
        TagValue)
       ),
       prik_sifr, tag_id
FROM vwDMData
WHERE unit = 'm3' AND
      TagTimeUTC >= DATEADD(minute, -15, CAST(CAST(GETDATE() AS DATE) as DATETIME)) AND
      TagTimeUTC < DATEADD(minute, 24*60-15, CAST(CAST(GETDATE() AS DATE) as DATETIME)) ;
...