繁体   English   中英

将SQL返回的日期转换为DateTime格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM