Requête SQL pour la date du jour moins deux mois


141

Je veux sélectionner tous les enregistrements dans une table où leur date d'entrée est antérieure à 2 mois.

Une idée de comment je peux faire ça?

Je n'ai encore rien essayé mais je suis sur ce point:

SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()

Réponses:


286

Si vous utilisez SQL Server, essayez ceci:

SELECT * FROM MyTable
WHERE MyDate < DATEADD(month, -2, GETDATE())

En fonction de votre mise à jour, ce serait:

SELECT * FROM FB WHERE Dte <  DATEADD(month, -2, GETDATE())

25
Si vous utilisez MySQL, cela deviendrait:MyDate < DATE_ADD(NOW(), INTERVAL -2 MONTH)
Stefan


3

Quelque chose comme ça fonctionnerait pour vous?

SELECT * FROM FB WHERE Dte >= DATE(NOW() - INTERVAL 2 MONTH);

3
C'est une solution pour MySQL et il a demandé une solution pour SQL Server. Cela ne fonctionne pas sur SQL Server.
Gander

0
SELECT COUNT(1)
FROM FB
WHERE
    Dte BETWEEN CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '-' + CAST(MONTH(DATEADD(month, -1, GETDATE())) AS VARCHAR(2)) + '-20 00:00:00'
        AND CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '-' + CAST(MONTH(GETDATE()) AS VARCHAR(2)) + '-20 00:00:00'

0

TSQL, Alternative utilisant la déclaration de variable. (cela pourrait améliorer la lisibilité de Query)

DECLARE @gapPeriod DATETIME = DATEADD(MONTH,-2,GETDATE()); --Period:Last 2 months.

SELECT 
        *
    FROM 
        FB as A
    WHERE
        A.Dte <= @gapPeriod;                               --only older records.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.