【问题标题】:Adding date and time to the backup file as suffix将日期和时间添加到备份文件作为后缀
【发布时间】:2020-10-19 16:08:23
【问题描述】:

我在 MSSQL Server Management Studio 中创建了一个备份作业并定期运行备份脚本。我还想将日期和时间添加为以下格式:

2020.10.16_18.00.00

我尝试了一些方法,但我认为我必须使用特殊格式。如何在不使用 SP 等的情况下仅使用日期时间方法获取上述日期?

我试过了,但没有给出我想要的格式。

select convert(varchar, getdate(), 120) 

【问题讨论】:

  • “添加”是什么意思?添加到文件名?添加到 d/b 中的数据?添加到日志文件?
  • 是的,添加到文件名。算了,只关注我提供的格式。

标签: sql sql-server


【解决方案1】:

您可以使用FORMAT 自定义输出:

SELECT FORMAT(GETDATE(), 'yyyy.MM.dd_hh.mm.ss')

否则,您可以使用REPLACE 操作输出:

SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), '-', '.'), ':', '.'), ' ', '_')

这应该允许您将路径定义为变量:

DECLARE @Path NVARCHAR(500) = N'D:\backup\CurrencyExchange' + FORMAT(GETDATE(), 'yyyy.MM.dd_hh.mm') + '.log'
BACKUP LOG [CurrencyExchange] TO DISK = @Path

【讨论】:

  • 把这个添加到备份脚本中怎么样?我尝试这样但没有奏效。我应该声明为变量吗?如何? BACKUP LOG [CurrencyExchange] TO DISK = N'D:\backup\CurrencyExchange' + SELECT FORMAT(GETDATE(), 'yyyy.MM.dd_hh.mm') + '.log' GO.
  • 您可以删除SELECT,应该可以正常工作
  • 没用,有什么特殊的串联吗?请检查一下好吗?
  • 也许我需要转换成字符串?
  • 我也试过BACKUP LOG [CurrencyExchange] TO DISK = N'D:\backup\CurrencyExchange' + SELECT CONVERT(VARCHAR, FORMAT(GETDATE(), 'yyyy.MM.dd_hh.mm')) + '.bak',但还是不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 2023-01-13
  • 2011-07-22
相关资源
最近更新 更多