【问题标题】:Powershell : Backup-SqlDatabase -ExpirationDatePowershell:备份-SqlDatabase-ExpirationDate
【发布时间】:2013-06-17 09:56:56
【问题描述】:

我尝试使用具有 expireDate 的管理单元 Backup-SqlDatabase,但出现错误: 参数 EXPIREDATE 的值无效。 谁能告诉我如何格式化这个参数?

这是我的代码:

$expirationDate = Get-Date
$expirationDate = $expirationDate.AddDays($expirationDelayInDays)

Backup-SqlDatabase -ServerInstance $serverInstance -Database $database -ConnectionTimeout 0 -BackupFile $outputFile -ExpirationDate $expirationDate

【问题讨论】:

  • 根据文档过期日期应该是 DateTime 类型。但是,您似乎没有更新第二行的 $expirationDate 。你可以试试:$expirationdate = $expirationdate.adddays($expirationDelayInDays)
  • 你说得对,我改变了代码......不是更好。我相信 $expirationDate 是 DateTime。
  • 奇怪,因为代码对我有用,你为变量 $expirationDelayInDays 使用了什么值?可能不是格式问题,而是您传递的值确实无效,因为日期时间绝对是此参数将接受的唯一类型。
  • 我用 7 表示 $expirationDelayInDays。对我来说 $expirationDate 是一个日期时间,我错了吗?
  • 好的。看来 $expirationdate 不应该是 DateTime 类型! ...但是可以转换为日期时间的字符串。使用 $expidationdate = "2013-09-01" 时,它可以工作......但我相信转换中存在一个错误,因此 09 和 01 被颠倒了。

标签: sql-server powershell database-backups


【解决方案1】:

EXPIREDATE 只处理日期。它不处理 time 组件。 因此,您需要指定一个带有空时间组件的DateTime(使用DateTime.Date 属性):

$expirationDate = (Get-Date).AddDays($expirationDelayInDays).Date
Backup-SqlDatabase -ServerInstance $instance -Database $database -ExpirationDate $expirationDate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2021-11-21
    • 1970-01-01
    • 2013-08-15
    • 2017-08-16
    • 2021-04-13
    相关资源
    最近更新 更多