kjv*_*kjv 21 sql sql-server datetime
在我的数据库的表中,我有一个datatime列,用于存储添加记录的时间.如何在运行存储过程时删除所有超过一天的记录(考虑当前时间)?
KB2*_*B22 31
您可以使用datediff和getdate函数构建DELETE语句.
用法示例:
DELETE FROM yourTable WHERE DATEDIFF(day,getdate(),thatColumn) < -1
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 29
说到SQL,你必须用"比一天更早"来指定你的意思.
DATEDIFF:它使用午夜边界,所以在10月19日00:05运行它你将删除6分钟的行(10月18日23:59)
24小时?
昨天午夜?10月19日运行代码,在18日之前删除行?
另外,不要在列上放置函数.
这假设24小时到分钟:
DELETE
MyTableWhere
WHERE
MyColumn < DATEADD(day, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)
这假设是昨天午夜:
DELETE
MyTableWhere
WHERE
MyColumn < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1)
Run Code Online (Sandbox Code Playgroud)
Delete <TableName>
Where DATEDIFF(day, <ColumnName>, getdate()) > 0
Run Code Online (Sandbox Code Playgroud)
拉吉
归档时间: |
|
查看次数: |
52725 次 |
最近记录: |