执行循环期间的日期时间减1

时间:2015-07-24 04:52:00

标签: sql sql-server tsql

我有一种获取datetime()名称getdate的方法,这是获取日期的查询:"SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') AS serverdt;";

我有365个数据库就像test01012015 || 01 for month || 01 for day || 2015一样,它是一个日常数据库

如果我已经获得了getdate()方法的返回值 如何减去每次执行循环的日期?

1 个答案:

答案 0 :(得分:0)

没有更多信息......

12月31日至1月1日:

declare @DBDate datetime
set @DBDate = '31 dec 1900'
while @DBDate >= '1 jan 1900'
begin

    --Use Date in Something
    select @DBDate

    --Increment
    select @DBDate = @DBDate - 1

End

当前日期回溯365天:

declare @DBDate datetime
set @DBDate = getdate()
while @DBDate >= getdate()-365
begin

    --Use Date in Something
    select @DBDate

    --Increment
    select @DBDate = @DBDate - 1

End

现在使用您的变量:

declare @DBDate datetime
set @DBDate = getdate()
while @DBDate >= getdate()-365
begin

    --Use Date in Something
    select 
        'TEST' 
        + CONVERT(varchar(20), @DBDate, 12) 
        + replace(CONVERT(varchar(20), @DBDate, 108),':', '')

    --Increment
    select @DBDate = @DBDate - 1


End