Я хочу выбрать все записи в таблице, где их дата записи старше двух месяцев.
Любая идея, как я могу это сделать?
Я еще ничего не пробовал, но я нахожусь здесь:
SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
Ответ 1
Если вы используете SQL Server, попробуйте это:
SELECT * FROM MyTable
WHERE MyDate < DATEADD(month, -2, GETDATE())
На основе вашего обновления это будет:
SELECT * FROM FB WHERE Dte < DATEADD(month, -2, GETDATE())
Ответ 2
Вы не указали свою СУБД, но это было бы решением стандартного ANSI SQL
SELECT *
FROM MyTable
WHERE MyDate < CURRENT_DATE - INTERVAL '2' MONTH
Ответ 3
SELECT COUNT(1) FROM FB
WHERE Dte > DATE_SUB(now(), INTERVAL 2 MONTH)
Ответ 4
Что-то вроде этой работы для вас?
SELECT * FROM FB WHERE Dte >= DATE(NOW() - INTERVAL 2 MONTH);
Ответ 5
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'
Ответ 6
TSQL, альтернативный вариант с использованием объявления переменных. (это может улучшить читаемость запросов)
DECLARE @gapPeriod DATETIME = DATEADD(MONTH,-2,GETDATE()); --Period:Last 2 months.
SELECT
*
FROM
FB as A
WHERE
A.Dte <= @gapPeriod; --only older records.