J'ai une requête:
SELECT name
FROM (
SELECT name FROM
Hist_answer
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
UNION ALL
SELECT name FROM
Hist_internet
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
) x
GROUP BY name ORDER BY name
Mais DATE_SUB est une fonction MySQL et j’ai besoin d’une fonction pour MsSQL 2008
Dites-moi s'il vous plaît, comment sélectionner des données à partir de 30 jours en utilisant MsSQL 2008?
P.S .: Le type de données de datetime est smalldatetime
Vous devriez utiliser DATEADD
est Sql Server donc si essayez cette simple sélection vous verrez l’effet
Select DATEADD(Month, -1, getdate())
Résultat
2013-04-20 14:08:07.177
dans votre cas essayez cette requête
SELECT name
FROM (
SELECT name FROM
Hist_answer
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
UNION ALL
SELECT name FROM
Hist_internet
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
) x
GROUP BY name ORDER BY name
Essayez ceci: avec cela, vous pouvez sélectionner la date des 30 derniers jours,
SELECT DATEADD(DAY,-30,GETDATE())
Pour ceux qui ne pouvaient pas faire fonctionner DATEADD, essayez plutôt ceci: (NOW () - INTERVAL 1 MOIS)