的前一個月我有這樣的:獲取給定日期的SQL
select company
from alldata
where **{previous month of date("01.05.2011")}**
IN
(select month from alldata where SumNrSpot=0)
我需要找到上月在where
克勞斯。 請有人幫忙嗎?
的前一個月我有這樣的:獲取給定日期的SQL
select company
from alldata
where **{previous month of date("01.05.2011")}**
IN
(select month from alldata where SumNrSpot=0)
我需要找到上月在where
克勞斯。 請有人幫忙嗎?
您可以使用DateAdd()
方法,將參數,月份和-1
作爲獲取上個月的值。
下面就給你
select DatePart(mm,DateAdd(m,-1,GetDate())) as PreviousMonth
爲您查詢,您可以嘗試:
select company
from alldata
where datepart(mm,dateadd(m,-1,Convert(DateTime, Convert(DateTime,'01.05.2011',104))))
IN (select month from alldata where SumNrSpot=0)
對於SQL服務器
您可以只使用功能MONTH()擺脫一個月一個約會。
您可以使用DATEADD(月,-1,)將日期調整一個月。
如果以文本形式向SQL Server呈現日期,則應始終使用格式YYYYMMDD。
where MONTH(DATEADD(month,-1,'20110501') IN
這是假設表列alldata.month
包含從1-12的月份的數值。
自定日期和提取物添加一個月-1
select (extract (month from now()) -1) as previous_month
如果你使用MySQL:
你的情況SELECT MONTH(DATE_SUB('2011-05-01', 1 MONTH))
select company
from alldata
where MONTH(DATE_SUB('2011-05-01', 1 MONTH))
IN
(select month from alldata where SumNrSpot=0)
瞭解更多關於這兩個功能here。
Select
DATEPART(mm,(DATEADD(m,-1,CONVERT(DATETIME,'01.05.2011')))) AS PreviousMonth
IN
(Select month from alldata where SumNrSpot=0)
假設你的「月」列是一個整數值
我就是這麼做的:
select company
from alldata
where MONTH(`Mon`) -1
IN
(select MONTH(Mon) from alldata where SumNrSpot=0)
還是要謝謝你,你的一些答覆是有益的和讚賞。
你在開始時建議'DATEADD(month,-1,...)',但你的例子顯示'DATEADD(month,1,...)'。順便說一下,他們可能會使用MySQL,通過日期(...)和雙引號來判斷。 –
你說得對,你說得對。增加了一個免責聲明 – RichardTheKiwi