sql之SQL 是否自动计算每月的开始和结束日期
davidwang456
阅读:30
2025-02-15 21:57:57
评论:0
我正在尝试获取 1 个月内销售的总销售额。例如,从 2015 年 4 月 1 日到 2015 年 4 月 30 日。
我得到的跨度是 3/30/15 - 4/30/15。
这是我的 SQL:
SELECT Customer.custno
, Customer.enteredDate AS 'Date Entered'
, COUNT(BasicPolInfo.polid) AS 'Number of Policies'
, SUM(COUNT(BasicPolInfo.polid)) OVER (ORDER BY Customer.custno ROWS
BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS TotalAmount
FROM Customer
INNER JOIN BasicPolInfo ON Customer.custid = BasicPolInfo.custid
WHERE BasicPolInfo.polid IS NOT NULL
AND Customer.firstname IS NOT NULL
AND Customer.enteredDate BETWEEN DATEADD(MONTH, -1, GETDATE()) AND
DATEADD(MONTH, 0, GETDATE())
GROUP BY Customer.custno
, Customer.firstname
, Customer.lastname
, Customer.entereddate
ORDER BY Customer.enteredDate ASC
我得到的结果是从 2015-04-30 到 2015-03-30 的日期。我正在尝试将 2015-04-30 改为 2015-04-01。
下个月也是从 2015-05-31 到 2015-05-01
任何帮助将不胜感激!谢谢!
请您参考如下方法:
因为你在 2012 年,你可以使用 EOMONTH()
WHERE Customer.enteredDate >= DATEADD(DAY, 1, EOMONTH(GETDATE(), -1))
AND < DATEADD(DAY, 1, EOMONTH(GETDATE()))
或者您可以只匹配月份和年份。
where month(Customer.enteredDate) = month(getDate())
and year(Customer.enteredDate) = year(getDate())
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。