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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5425627/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 09:51:08  来源:igfitidea点击:

SQL query for today's date minus two months

sqlsql-server

提问by Laziale

I want to select all the records in a table where their date of entry is older then 2 months.

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

Any idea how I can do that?

知道我该怎么做吗?

I haven't tried anything yet but I am on this point:

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

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

回答by Abe Miessler

If you are using SQL Server try this:

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

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

Based on your update it would be:

根据您的更新,它将是:

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

回答by geeknik

Would something like this work for you?

这样的事情对你有用吗?

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

回答by George SEDRA

SELECT COUNT(1) FROM FB 
WHERE Dte > DATE_SUB(now(), INTERVAL 2 MONTH)

回答by Marc

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'

回答by Arthur Zennig

TSQL, Alternative using variable declaration. (it might improve Query's readability)

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

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

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