WHERE子句,用于从月的第一天到今天之间的天数



我试图为一个报告编写一个查询,以显示备件的每月消耗量,并将其显示在仪表板中。如何为捕获从当月第一天到今天的记录的日期编写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 

最新更新