下个月的第一天

时间:2014-03-25 01:43:33

标签: sql sql-server tsql sql-date-functions

我正在尝试获取结果,它只在CURRENT月的最后一天之前显示OrderDates。 我猜它会是这样......

SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)

7 个答案:

答案 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)