问题
I'm trying get the results where it only displays OrderDates before the LAST day of the CURRENT month. I'm guessing it would be like this...
SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)
回答1:
First day of next month:
sql-server 2012+
DATEADD(d, 1, EOMONTH(current_timestamp))
sql-server 2008 and older:
DATEADD(m, DATEDIFF(m, -1, current_timestamp), 0)
回答2:
Your question is somewhat ambiguous, but this will give you '(code for the first day of the month)'
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
回答3:
SELECT DATEADD(month, DATEDIFF(month, 0, getdate())+1, 0) AS StartOfMonth
回答4:
Try this
SELECT OrderDate
FROM Orders
WHERE ORDERDATE < DATEADD(dd,-(DAY(DATEADD(mm,1,getdate()))-1),DATEADD(mm,1,getdate()))
Take a look at here
回答5:
SELECT OrderDate FROM Orders WHERE orderdate < (LAST_DAY(CURRENT DATE) + 1)
回答6:
Select Convert(date,Dateadd(dd,1 - DATEPART(dd,getdate()), DATEADD(mm,1,getdate())),103)
来源:https://stackoverflow.com/questions/22623971/first-day-of-the-next-month