SQL查询今天的日期减去两个月

SQL查询今天的日期减去两个月,sql,sql-server,Sql,Sql Server,我想选择表中的所有记录,这些记录的输入日期早于2个月 你知道我怎么做吗 我还没有尝试过任何东西,但我在这一点上: SELECT COUNT(1) FROM FB WHERE Dte > GETDATE() 如果您使用的是SQL Server,请尝试以下操作: SELECT * FROM MyTable WHERE MyDate < DATEADD(month, -2, GETDATE()) 根据您的更新,它将是: SELECT * FROM FB WHERE Dte <

我想选择表中的所有记录,这些记录的输入日期早于2个月

你知道我怎么做吗

我还没有尝试过任何东西,但我在这一点上:

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

如果您使用的是SQL Server,请尝试以下操作:

SELECT * FROM MyTable
WHERE MyDate < DATEADD(month, -2, GETDATE())
根据您的更新,它将是:

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

你喜欢这个工作吗

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

TSQL,使用变量声明的替代方法。它可能会提高查询的可读性

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

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

如果您使用MySQL,这将变成:MyDateSELECT 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'
DECLARE @gapPeriod DATETIME = DATEADD(MONTH,-2,GETDATE()); --Period:Last 2 months.

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