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

我想选择一个表中的所有记录,其中他们的日期是老于2个月。

知道我该怎么做吗?

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

SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
552040 次浏览

如果您正在使用 SQLServer,请尝试以下操作:

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);
SELECT COUNT(1) FROM FB
WHERE Dte > DATE_SUB(now(), INTERVAL 2 MONTH)
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'

使用变量声明的替代方法(它可以提高 Query 的可读性)

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


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

我在 SQLServer 上使用这个:

SELECT


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


FROM MyTable