web-dev-qa-db-fra.com

requête SQL pour obtenir des données pour les 3 derniers mois

Comment obtenir la date du jour et la convertir au format 01/mm /yyyy et obtenir les données de la table avec le mois de livraison d'il y a 3 mois? La table contient déjà le mois de livraison sous la forme 01/mm/yyyy.

23
user88866050
SELECT * 
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(MONTH, -3, GETDATE()) 

La méthode suggérée par Mureinik retournera les mêmes résultats, mais en procédant ainsi, votre requête pourra tirer parti de tous les index sur Date_Column.

ou vous pouvez vérifier contre 90 derniers jours. 

SELECT * 
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(DAY, -90, GETDATE()) 
60
M.Ali

Les dernières versions de mysql ne supportent pas DATEADD mais utilisent la syntaxe

DATE_ADD(date,INTERVAL expr type)

Pour obtenir les données des 3 derniers mois, 

DATE_ADD(NOW(),INTERVAL -90 DAY) 
DATE_ADD(NOW(), INTERVAL -3 MONTH)
11
Mithun Arunan

J'utiliserais datediff, sans me soucier des conversions de format:

SELECT *
FROM   mytable
WHERE  DATEDIFF(MONTH, my_date_column, GETDATE()) <= 3
6
Mureinik

3 derniers mois

SELECT DATEADD(dd,DATEDIFF(dd,0,DATEADD(mm,-3,GETDATE())),0)

Aujourd'hui

SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)
0
Tom McDonough