如何在sql中为prevous月份设置日期条款?

时间:2017-02-02 07:27:49

标签: sql-server datetime

我想获得流行月份的最新值(通用,而不仅仅是1月:))

我如何设置条件?现在它适用于本月,但我希望结果是流行的。

SELECT     MAX(v.timestamp) AS Date, 
           MAX(v.value) AS Stanje,
           v.tag_id, t.prik_sifr, t.tag_name
FROM       dbo.tag_values AS v INNER JOIN
           dbo.typ_tag AS t ON v.tag_id = t.id
    WHERE       (t.prik_sifr IS NOT NULL) AND (t.unit = 'M3') AND 
        (DATEPART(YEAR, v.timestamp) = DATEPART(YEAR, SYSDATETIME())) AND 
        (DATEPART(MONTH, v.timestamp)= DATEPART(MONTH, SYSDATETIME()))    GROUP BY v.tag_id, t.prik_sifr, t.tag_name)

1 个答案:

答案 0 :(得分:0)

您需要从当前日期开始构建一个月:

SELECT     MAX(v.timestamp) AS Date, 
           MAX(v.value) AS Stanje,
           v.tag_id, t.prik_sifr, t.tag_name
FROM       dbo.tag_values AS v INNER JOIN
           dbo.typ_tag AS t ON v.tag_id = t.id
    WHERE       (t.prik_sifr IS NOT NULL) AND (t.unit = 'M3') AND 
        (DATEPART(YEAR, v.timestamp) = DATEPART(YEAR, DATEADD(MONTH, -1 SYSDATETIME()))) AND 
        (DATEPART(MONTH, v.timestamp)= DATEPART(MONTH, DATEADD(MONTH, -1 SYSDATETIME())))
GROUP BY v.tag_id, t.prik_sifr, t.tag_name)