189 votes

Requête SQL pour la date d'aujourd' hui moins deux mois

Je veux sélectionner tous les enregistrements dans un tableau où leur date d'entrée est plus ancienne que 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()

370voto

Abe Miessler Points 34869

Si vous utilisez SQL Server, essayez ceci :

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

D'après votre mise à jour, ce serait :

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

7voto

geeknik Points 711

Est-ce que ça vous plairait ?

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

6voto

a_horse_with_no_name Points 100769

Vous n'avez pas mentionné votre SGBD, mais ce serait la solution dans la norme ANSI SQL

SELECT * 
FROM MyTable
WHERE MyDate < CURRENT_DATE - INTERVAL '2' MONTH

5voto

Arthur Zennig Points 904

TSQL, alternative utilisant la déclaration variable. (cela pourrait améliorer la lisibilité de la requête)

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

SELECT 
        *
    FROM 
        FB as A
    WHERE
        A.Dte <= @gapPeriod;                               --only older records.

2voto

TheOx Points 23

Je l'utilise sur SQL Server :

SELECT 

DATEADD(MONTH,-2,GETDATE()) '- 2 months'

FROM MyTable

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X