无法将值从数据表转换为日期时间

时间:2019-05-01 21:18:36

标签: powershell

使用powershell 5.1

我有一个函数,该函数返回一个表示日期的字符串,像这样 “ 4/22/2019 12:00:00 AM”

function Get-LastLogTime() {
    $lastRunDate =  Get-SQLData  "." "AdHoc" "SELECT TOP 1 o.LogTime FROM dbo.FAQlog o  WHERE o.RecordsSent = 1 ORDER BY o.LogTime DESC" 

    return $lastRunDate
}

其中LogTime是通常的Datetime SQL类型,而Get-SQLData是另一个返回数据表的函数。 如果我只检查返回值,就会得到类似这样的信息

LogTime
-------
4/22/2019 12:00:00 AM

好的,很好,但是我需要将此日期与当前日期进行比较。因此,我做了类似的事情,但是在尝试将$testDate转换为日期时间的那行出现错误。

# test
$testDate = Get-LastLogTime
([DateTime]$testDate) -lt (Get-Date)

如果我只是在命令行中进行简单比较,则可以正常工作,例如。

([DateTime]"4/22/2019 12:00:00 AM" ) -lt (Get-Date)

1 个答案:

答案 0 :(得分:0)

它与     ([DateTime]“ 2019/4/22 12:00:00”) 因为您将DateTime强制转换为字符串。

返回值Get-LastLogTime可能不是字符串,并且将其强制转换为Datetime无效。 get-LastLogTime | get-member将为您显示返回的数据类型上可用的方法,例如ToString,这些方法可用于执行比较。