【发布时间】:2019-11-05 19:51:21
【问题描述】:
我需要从 SQL Server 数据库中选择当月 1 日和当日之间的数据。
SELECT *
FROM table_name
WHERE date BETWEEN "1st day of current month" AND "current day"
【问题讨论】:
-
那你有什么尝试?
标签: sql sql-server
我需要从 SQL Server 数据库中选择当月 1 日和当日之间的数据。
SELECT *
FROM table_name
WHERE date BETWEEN "1st day of current month" AND "current day"
【问题讨论】:
标签: sql sql-server
您可以使用EOMONTH() 跳转到上个月的最后一天。然后,只需添加 1 天,使用 DATEADD() 和 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,0,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。我更喜欢无需修改即可在dates 和datetimes 上运行的代码。
此外,SQL Server 还具有方便的datefromparts() 功能。所以,我建议:
WHERE date >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AND
date < CONVERT(DATE, DATEADD(DAY, 1, GETDATE()))
【讨论】: