SQL:按日期和删除获取数据库

时间:2017-12-29 02:47:25

标签: sql sql-server

我在测试期间创建了许多数据库,我需要在1天后自动删除。

我可以在TESTDB_开头选择所有这些内容,但不确定如何让DB的创建日期超过1天并删除。

这是我所拥有的。任何人都有任何想法来完成这个:

 Select name from Sys.Databases where [name] LIKE '%TESTDB_%' and [create_date] <= 

谢谢!

2 个答案:

答案 0 :(得分:1)

大于一天:

Declare @dbname varchar(50);
DECLARE @cmd VARCHAR(1000);
select @dbname = [name]   from
(Select DATEDIFF(DAY,[create_date],GETDATE()) as diff, [name] from Sys.Databases) as a 
where diff>1 and name like '%TESTDB_%';
SET @cmd = 'Drop Database '  + @dbname;
EXEC(@cmd);

答案 1 :(得分:0)

您可以使用DATEDIFF()函数计算HOURS中的差异:

Select name from Sys.Databases where [name] LIKE '%TESTDB_%' and datediff(hour, [create_date], getdate()) > 24
相关问题