我正在尝试获取仅在当前月份的最后一天之前显示 OrderDates 的结果。我猜会是这样的……
SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)
我正在尝试获取仅在当前月份的最后一天之前显示 OrderDates 的结果。我猜会是这样的……
SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)
下个月的第一天:
sql-server 2012+
DATEADD(d, 1, EOMONTH(current_timestamp))
sql-server 2008 及更早版本:
DATEADD(m, DATEDIFF(m, -1, current_timestamp), 0)
您的问题有些模棱两可,但这会给您“(本月第一天的代码)”
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
SELECT DATEADD(month, DATEDIFF(month, 0, getdate())+1, 0) AS StartOfMonth
让我们了解获取当月第一天的方法,我们可以使用 DATEPART 从日期(例如@mydate)中获取天组件并减去该天组件以获得上个月的最后一天。添加一天以获得当月的第一天。例如@mydate = 10/8/2019,减去天数部分(8 天)将为我们提供 2019 年 9 月 30 日。现在在此结果中添加一天以获得当月的第一天 - 2019 年 10 月 1 日。
公式 - DATEADD(day,1,DATEADD(day, -DATEPART(day,@mydate), @mydate))
现在 下个月的第一天- 在上面的公式中添加一个月 DATEADD(month,1,(DATEADD(day,1,DATEADD(day, -DATEPART(day,@mydate), @mydate))))
尝试这个
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(dd,-(DAY(DATEADD(mm,1,getdate()))-1),DATEADD(mm,1,getdate()))
看看这里
SELECT OrderDate FROM Orders WHERE orderdate < (LAST_DAY(CURRENT DATE) + 1)
Select Convert(date,Dateadd(dd,1 - DATEPART(dd,getdate()), DATEADD(mm,1,getdate())),103)