sql-server - 如何使用 SQL Server 从数据库中获取最近六个月的数据?
问题描述
我已经尝试了许多不同的查询,这里已经给出了,但它也显示了上一年的数据,例如,如果使用这个查询
Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0)
或者
DATEADD(m, -6, current_timestamp)
这些将在过去六个月内产生。就我而言,我想打印过去六个月的数据。但问题是,如果有一个日期相同但年份不同的数据也会导致这些查询,例如(上面的查询返回 '2018-03-27 10:04:52.537' 的结果,如果有'2017-03-27 10:04:52.537' 的数据也将与结果一起出现)。谁能帮我?
这是我的查询
DECLARE @date6MonthAgo DATETIME = DATEADD(m, -6, current_timestamp)
DECLARE @totalCount INT = (SELECT COUNT(*)
FROM [PSA].[ProductionOrder]
WHERE CreatedDate >= @date6MonthAgo)
DECLARE @openCount INT = (SELECT COUNT(*)
FROM [PSA].[ProductionOrder]
WHERE DocumentStatusCode=7
AND CreatedDate >= @date6MonthAgo )
SELECT @date6MonthAgo, @totalCount, @openCount
解决方案
尝试这样的事情,在输入正确的 ID 列之后,只是为了自己验证返回的日期
DECLARE @date6MonthAgo DATETIME = DATEADD(m, -6, current_timestamp);
SELECT @date6MonthAgo;
SELECT CreatedDate, keycolumnID
FROM [PSA].[ProductionOrder]
WHERE DocumentStatusCode=7
AND CreatedDate >= @date6MonthAgo
ORDER BY CreatedDate;