75

30 日以上経過した行を削除するには、SQL ステートメントが必要です。

私のテーブルには、データベースに挿入された日付と時刻を含むeventsフィールドがあります。date

これは機能しますか?
SELECT * from Results WHERE [Date] >= DATEADD(d, -30, getdate())

4

9 に答える 9

138

WHERE 句でDATEADDを使用します。

...
WHERE date < DATEADD(day, -30, GETDATE())

の代わりに省略形のdorを使用することもできます。ddday

于 2010-12-06T09:32:58.583 に答える
9

これはおそらく最も透明性の高い方法ですが、単純な方法でも十分DATEADDであることは注目に値します。getdate()-30

また、今から 30 日後、つまり時間、分、秒などを探していますか? または、今日の午前 0 時から 30 日 (例: 12/06/2010 00:00:00.000)。その場合、次のことを検討してください。

SELECT * 
FROM Results 
WHERE convert(varchar(8), [Date], 112) >= convert(varchar(8), getdate(), 112)
于 2010-12-06T09:44:45.940 に答える
1

2 つの日付の間で設定することもできます。

Delete From tblAudit
WHERE Date_dat < DATEADD(day, -360, GETDATE())
GO
Delete From tblAudit
WHERE Date_dat > DATEADD(day, -60, GETDATE())
GO
于 2012-09-11T06:35:00.203 に答える
0

GETDATE()mySQL 8 を使用するとうまくいきませんでした

エラー 1305 (42000): FUNCTION mydatabase.GETDATE が存在しません

しかし、これは:

DELETE FROM table_name WHERE date_column < CURRENT_DATE - 30;
于 2019-12-09T03:23:28.820 に答える