今日の日付から2か月を引いたSQLクエリ


140

エントリの日付が2か月以上古いテーブルのすべてのレコードを選択したい。

どうすればそれを行うことができますか?

私はまだ何も試していませんが、私はこの点にいます:

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

回答:


285

SQL Serverを使用している場合は、次のことを試してください。

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

あなたの更新に基づいてそれは次のようになります:

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

25
MySQLを使用している場合、これはなる:MyDate < DATE_ADD(NOW(), INTERVAL -2 MONTH)
ステファン・


3

このようなものはあなたのために働きますか?

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

3
これはMySQLのソリューションであり、SQL Serverのソリューションを求めました。SQL Serverでは機能しません。
ガンダー

0
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'

0

TSQL、変数宣言を使用した代替。(クエリの可読性が向上する可能性があります)

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

SELECT 
        *
    FROM 
        FB as A
    WHERE
        A.Dte <= @gapPeriod;                               --only older records.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.