簡體   English   中英

獲取給定日期sql的上個月

[英]Get previous month of a given date sql

我有這個:

select company
from alldata
where **{previous month of date("01.05.2011")}**
IN
(select month from alldata where SumNrSpot=0)

我需要where clouse中找到上個月。 拜托,有人可以幫忙嗎?

如果您使用的是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)

在此處閱讀有關這兩種功能的更多信息。

您可以將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 Server

您可以只使用MONTH()函數從日期中獲取一個月。
您可以使用DATEADD(month,-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 
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)

無論如何,謝謝您的一些回復,對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM