Permintaan SQL untuk tanggal hari ini dikurangi dua bulan


140

Saya ingin memilih semua catatan dalam tabel di mana tanggal masuk mereka lebih tua dari 2 bulan.

Adakah yang bisa saya lakukan?

Saya belum mencoba apa pun, tetapi saya sedang dalam hal ini:

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

Jawaban:


285

Jika Anda menggunakan SQL Server coba ini:

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

Berdasarkan pembaruan Anda, itu akan menjadi:

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

25
Jika Anda menggunakan MySQL, ini akan menjadi:MyDate < DATE_ADD(NOW(), INTERVAL -2 MONTH)
Stefan


3

Apakah sesuatu seperti ini cocok untuk Anda?

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

3
Ini adalah solusi untuk MySQL dan dia meminta solusi untuk SQL Server. Ini tidak berfungsi pada SQL Server.
Gander

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, Alternatif menggunakan deklarasi variabel. (ini dapat meningkatkan keterbacaan Query)

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

SELECT 
        *
    FROM 
        FB as A
    WHERE
        A.Dte <= @gapPeriod;                               --only older records.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.