将日期添加到SQL数据库备份文件名

Cdl*_*l56 35 sql sql-server

我正在使用以下方法从SQL作业备份数据库.有人能告诉我如何将当前日期添加到输出文件名吗?最好是YYYYMMDD格式.

BACKUP DATABASE [myDB] TO  DISK = N'\\myPath\myDB.bak' WITH NOFORMAT, INIT,  NAME = N'myDB', SKIP, REWIND, NOUNLOAD,  STATS = 10
GO
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jon*_*onH 46

DECLARE @MyFileName varchar(1000)

SELECT @MyFileName = (SELECT '\\ServerToSave\Path\MyDB_' + convert(varchar(500),GetDate(),112) + '.bak') 

BACKUP DATABASE [myDB] TO DISK=@MyFileName ...
Run Code Online (Sandbox Code Playgroud)

  • 这让一些有趣的阅读,谢谢你. (4认同)

Jua*_*lez 18

如果要包含日期和时间,那么您可以使用:

DECLARE @MyFileName varchar(200)
SELECT @MyFileName='\\ServerToSave\Path\MyDB_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak'
BACKUP DATABASE [myDB] TO DISK=@MyFileName ...
Run Code Online (Sandbox Code Playgroud)

120中Convert给你yyyy-mm-dd hh:mi:ss(24h)

REPLACE函数是必需的,因为文件名不能包含该:字符.


CRe*_*lts 8

试试这个.

DECLARE @MyFileName varchar(50)
SELECT '\\ServerToSave\Path\MyDB_' + convert(nvarchar(20),GetDate(),112) + '.bak'
BACKUP DATABASE [myDB] TO DISK=@MyFileName ...
Run Code Online (Sandbox Code Playgroud)

Convert中的112为您提供YYYYMMDD格式