我需要在当月第一天到当日之间从SQL Server数据库中选择数据。
SELECT *
FROM table_name
WHERE date BETWEEN "1st day of current month" AND "current day"
我需要在当月第一天到当日之间从SQL Server数据库中选择数据。
SELECT *
FROM table_name
WHERE date BETWEEN "1st day of current month" AND "current day"
您可以使用EOMONTH()
跳到该月的最后一天,即上个月。然后,只需使用DATEADD()
加上1作为一天的增量来添加1天,即可得出当月的第一天。
SELECT *
FROM <table>
WHERE <date> BETWEEN DATEADD(DAY,1,EOMONTH(GETDATE(),-1)) and GETDATE()
,
我认为这应该可行,
SELECT *
FROM TABLE_NAME
WHERE date BETWEEN DATEADD(mm,DATEDIFF(mm,date),0) AND GETDATE()
,
愿这对您有帮助
select * from TABLE_NAME
where date between
dateadd (DAY,-(datepart (DAY,getdate ())) + 1,convert (date,GETDATE ()))
and
convert (date,getdate ())
,
我不建议为此目的使用between
。我更希望代码可以在date
和datetime
上运行而无需修改。
此外,SQL Server具有便捷的datefromparts()
功能。所以,我建议:
WHERE date >= DATEFROMPARTS(YEAR(GETDATE()),MONTH(GETDATE()),1) AND
date < CONVERT(DATE,DATEADD(DAY,GETDATE()))