我正在尝试获取结果,它只在CURRENT月的最后一天之前显示OrderDates。 我猜它会是这样......
SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)
答案 0 :(得分:50)
下个月的第一天:
sql-server 2012 +
DATEADD(d, 1, EOMONTH(current_timestamp))
sql-server 2008及更早版本:
DATEADD(m, DATEDIFF(m, -1, current_timestamp), 0)
答案 1 :(得分:2)
你的问题有些含糊不清,但这会给你'(本月第一天的代码)'
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
答案 2 :(得分:2)
SELECT DATEADD(month, DATEDIFF(month, 0, getdate())+1, 0) AS StartOfMonth
答案 3 :(得分:1)
试试这个
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(dd,-(DAY(DATEADD(mm,1,getdate()))-1),DATEADD(mm,1,getdate()))
查看here
答案 4 :(得分:1)
SELECT OrderDate FROM Orders WHERE orderdate < (LAST_DAY(CURRENT DATE) + 1)
答案 5 :(得分:1)
让我们了解获取当前月份第一天的方法,我们可以使用DATEPART从日期(例如@mydate)中获取日期部分,然后减去这一天部分以获取上个月的最后一天。添加一天即可获得当月的第一天。 例如。 @mydate = 10/8/2019,减去日期部分(8天)将得出9/30/2019。现在在此结果中添加一天以获取本月的第一天-2019年1月1日。
公式-DATEADD(day,1,DATEADD(day,-DATEPART(day,@ mydate),@mydate))
现在下个月的第一个月-在上述公式中添加一个月 DATEADD(month,1,(DATEADD(day,1,DATEADD(day,-DATEPART(day,@ mydate),@mydate))))
答案 6 :(得分:0)
Select Convert(date,Dateadd(dd,1 - DATEPART(dd,getdate()), DATEADD(mm,1,getdate())),103)