我需要在当月第一天到当日之间从SQL Server数据库中选择数据。
SELECT *
FROM table_name
WHERE date BETWEEN "1st day of current month" AND "current day"
答案 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
。我更希望代码可以在date
和datetime
上运行而无需修改。
此外,SQL Server具有便捷的datefromparts()
功能。所以,我建议:
WHERE date >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AND
date < CONVERT(DATE, DATEADD(DAY, 1, GETDATE()))