ฉันต้องการเลือกระเบียนทั้งหมดในตารางที่วันที่ของรายการนั้นเก่ากว่า 2 เดือน
ความคิดใดที่ฉันสามารถทำได้
ฉันยังไม่ได้ลองอะไรเลย แต่ฉันมาที่จุดนี้:
SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
ฉันต้องการเลือกระเบียนทั้งหมดในตารางที่วันที่ของรายการนั้นเก่ากว่า 2 เดือน
ความคิดใดที่ฉันสามารถทำได้
ฉันยังไม่ได้ลองอะไรเลย แต่ฉันมาที่จุดนี้:
SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
คำตอบ:
หากคุณใช้ SQL Server ลองทำสิ่งนี้:
SELECT * FROM MyTable
WHERE MyDate < DATEADD(month, -2, GETDATE())
จากการอัพเดทของคุณมันจะเป็น:
SELECT * FROM FB WHERE Dte < DATEADD(month, -2, GETDATE())
SELECT COUNT(1) FROM FB
WHERE Dte > DATE_SUB(now(), INTERVAL 2 MONTH)
คุณอยากได้สิ่งนี้ไหม
SELECT * FROM FB WHERE Dte >= DATE(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'
TSQL ทางเลือกโดยใช้การประกาศตัวแปร (มันอาจปรับปรุงการอ่านของแบบสอบถาม)
DECLARE @gapPeriod DATETIME = DATEADD(MONTH,-2,GETDATE()); --Period:Last 2 months.
SELECT
*
FROM
FB as A
WHERE
A.Dte <= @gapPeriod; --only older records.
MyDate < DATE_ADD(NOW(), INTERVAL -2 MONTH)