[英]Convert SQL Returned date to DateTime Format
我想知道您是否能帮助我! 我已经搜索了上面的很棒的答案,而Google和可惜我找不到我的难题的答案!
本质上,我正在PowerShell中运行SQL命令以检索上次还原日期时间,但是显示的方式与我(我认为)无法与当前日期进行比较以查看还原是否一致。
运行的脚本如下:
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=SERVER\Instance;Database=DataBaseName;Integrated Security=True"
$SqlConnection.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "DECLARE @DB sysname = 'DataBaseName';
SELECT TOP 1 restore_date
FROM msdb.dbo.restorehistory
WHERE destination_database_name = @DB
ORDER BY restore_date DESC;"
$SqlCmd.Connection = $SqlConnection
$dbrestoredate = $SqlCmd.ExecuteScalar()
$SqlConnection.Close()
Write-Output "Database Restore date " $dbrestoredate
但是,此格式返回为“ 2017年2月7日09:15:30”。
我更希望这是一种标准化的格式,例如dd/mm/yyyy
这样我就可以将该值与今天的日期进行比较,如果匹配则可以执行一些操作。
如果您有另一种适合我的比较方法,那么只要返回的日期是今天的日期,我只需要执行此操作即可。
尝试将其转换为字符串
select TOP 1 convert(varchar(20), restore_date, 103) as restore_date
如果要更改最终格式,请查看MS Docs中的CONVERT 。
您可以使用convert
:
select TOP 1 CONVERT(char(10), restore_date, 103) from msdb.dbo.restorehistory
这将返回一个字符串,该字符串以请求的格式( dd/mm/yyyy
)表示日期。
请注意,不使用TOP x
而不使用ORDER BY
是不确定的,因为除非使用order by
子句,否则无法保证查询返回的行的order by
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.