0

こんにちは、先月の 11 日から今月の 10 日までの SQL データベースの値の合計を取得しようとしています。

SELECT SUM(pay) AS month_pay 
FROM payaccounts 
WHERE dates BETWEEN 11th of last month and the 10th of this month

私は現在、このステートメントを使用して先月の値を見つけていますが、これを 11 日に変更する必要があると言われました。

SELECT SUM(pay) AS month_pay 
FROM payaccounts 
WHERE (DATEPART(m, date) = DATEPART(m, DATEADD(m, - 1, GETDATE()))) AND 
      (DATEPART(yy, date) = DATEPART(yy, DATEADD(m, - 1, GETDATE())))
4

3 に答える 3

7

このようなものを使用して、必要な日付を取得します。

select dateadd(day, 10, dateadd(month, datediff(month, 0, getdate()) - 1, 0)) [11 of last],
       dateadd(day, 10, dateadd(month, datediff(month, 0, getdate()), 0)) [11 of current]

そして、このようにクエリでそれらを使用します。

SELECT SUM(pay) AS month_pay 
FROM payaccounts 
WHERE date >= dateadd(day, 10, dateadd(month, datediff(month, 0, getdate()) - 1, 0)) and
      date < dateadd(day, 10, dateadd(month, datediff(month, 0, getdate()), 0))
于 2013-05-23T12:26:09.237 に答える