Powershell v2.0 - SQL查询不返回日期
问题描述:
我有一个PS命令从一个PS脚本返回一个日期时间字段。如果在SQL Studio Manager中运行,SQL脚本将按预期工作,但如果我在Powershell内运行,它只是“计数”记录数,在本例中为“1”。Powershell v2.0 - SQL查询不返回日期
$SqlCmd.CommandText =
"SELECT q.execution_queued_timestamp
FROM [database].[dbo].[Execution_Queue] AS q
LEFT JOIN [database].[dbo].[Execution_Queue_Lock] AS l
ON l.lock_id = q.lock_id
WHERE execution_status_code = 'q'"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlConnection.Close()
$DataSet.Tables[0]
$SqlAdapter.Fill($DataSet)
$SQL = $SqlAdapter.Fill($DataSet)
因此,不像我在SQL SM中那样获取日期时间格式,我在Powershell中获得“1”。
如果原始T-SQL是“Select *”,则会看到类似的行为,它会输出记录数而不是列出实际匹配。
任何想法?
答
在$ DataSet对象中查找您的数据。我通常使用类似于
foreach ($row in $DataSet.Tables[0].rows) { $row.execution_queued_timestamp }
的东西,但是您应该可以直接转到返回的元素1(类似这样)(未经测试)
$DataSet.Tables[0].Rows[0].execution_queued_timestamp
$ SQL当您使用它时,将始终具有返回的行数。你可以忽略,如果你不关心返回的行数通过更改该行到
$SqlAdapter.Fill($DataSet) |out-null
这一个帮助我谢谢!$ DataSet.Tables [0] .Rows [0] .execution_queued_timestamp – JDGEEK