查询选择“当前月份的第一天”和“当前日期”之间的日期

时间:2019-11-05 09:00:20

标签: sql sql-server

我需要在当月第一天到当日之间从SQL Server数据库中选择数据。

    SELECT *
      FROM table_name 
     WHERE date BETWEEN "1st day of current month" AND "current day"

4 个答案:

答案 0 :(得分:2)

您可以使用EOMONTH()跳到该月的最后一天,即上个月。然后,只需使用DATEADD()加上1作为一天的增量来添加1天,即可得出当月的第一天。

SELECT *
FROM <table>
WHERE <date> BETWEEN DATEADD(DAY, 1, EOMONTH(GETDATE(),  -1)) and GETDATE()

答案 1 :(得分:0)

我认为这应该可行,

SELECT * 
FROM   TABLE_NAME 
 WHERE date BETWEEN DATEADD(mm, DATEDIFF(mm,0,date), 0) AND GETDATE()

答案 2 :(得分:0)

愿这对您有帮助

select * from TABLE_NAME 
where date between 
dateadd (DAY, -(datepart (DAY, getdate ())) + 1, convert (date, GETDATE ())) 
and 
convert (date, getdate ()) 

答案 3 :(得分:0)

我不建议为此目的使用between。我更希望代码可以在datedatetime上运行而无需修改。

此外,SQL Server具有便捷的datefromparts()功能。所以,我建议:

WHERE date >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AND
      date < CONVERT(DATE, DATEADD(DAY, 1, GETDATE()))