我试图为一个报告编写一个查询,以显示备件的每月消耗量,并将其显示在仪表板中。如何为捕获从当月第一天到今天的记录的日期编写WHERE
子句。
下面的子句可能解决问题
WHERE yourdate BETWEEN DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) AND GETDATE()
如果您的SQL服务器是SQL server 2012
,您可以使用EOMONTH
,它返回包含给定日期的月份的最后一天。
单击此处了解使用EOMONTH
的更多详细信息
检查您的SQL server版本:
select @@VERSION
以下是您想要的:
select * from job_cost
Where transaction_date BETWEEN DATEADD(DAY,1,EOMONTH(GETDATE(),-1)) and CAST(GETDATE() AS DATE)
您可以使用DATEFROMPRTS获取每月的第一天,并获取所有值>=日期时间值。
-- Getting first day of month
DECLARE @StartOfMonth datetime = (SELECT DATEFROMPARTS(YEAR(Getdate()), MONTH(Getdate()), 1))
SELECT * from Tablename where deltaColumnName >= @StartOfMonth