Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL pour obtenir des données n'importe quel mois précédent

Je ne suis pas un expert SQL mais essayez ceci :

SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0

Voir ma démo de violon

Explication :

DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)

Condition suivante :

DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)

Cependant, si vous ne voulez que le mois précédent, qu'il s'agisse de la même année que la date actuelle ou non, vous pouvez supprimer la deuxième condition, comme :

SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1

Voir la démo pour cela.

Par exemple, si CurrentDate est 2013-01-19 puis n'importe quel December 2012 la demande sera incluse bien qu'elle ne soit pas de la même année mais bien du mois précédent.