【发布时间】:2011-03-24 21:15:44
【问题描述】:
我想选择表中输入日期早于 2 个月的所有记录。
知道我该怎么做吗?
我还没有尝试过任何东西,但我就在这一点上:
SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
【问题讨论】:
标签: sql sql-server
我想选择表中输入日期早于 2 个月的所有记录。
知道我该怎么做吗?
我还没有尝试过任何东西,但我就在这一点上:
SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
【问题讨论】:
标签: sql sql-server
如果您使用的是 SQL Server,请尝试以下操作:
SELECT * FROM MyTable
WHERE MyDate < DATEADD(month, -2, GETDATE())
根据您的更新,它将是:
SELECT * FROM FB WHERE Dte < DATEADD(month, -2, GETDATE())
【讨论】:
MyDate < DATE_ADD(NOW(), INTERVAL -2 MONTH)
我在 SQL Server 上使用它:
SELECT
DATEADD(MONTH,-2,GETDATE()) '- 2 months'
FROM MyTable
【讨论】:
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.
【讨论】:
这样的东西对你有用吗?
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'
【讨论】: