Я читаю некоторые данные из базы данных, и это значение является штампом даты и времени.Целые числа не добавляются/вычитаются
Чтобы все было в порядке, данные аналогичны этому. 7/24/2015 16:13:58
Затем я извлекаю дату только так.
$ScanDate = $($Row[3]).ToString()
[String]$Scan = $ScanDate.SubString(0,10)
Я тогда разделить $ ScanDate в массив
$ Scan.Split ('/')
Тогда я изменить значение в целое для каждого дня, месяца и года
[int]$ScanMonth = $Scan[0]
[int]$ScanDay = $Scan[1]
[int]$ScanYear = $Scan[2]
Проверить они Целые ..
$ScanDay.GetType()
$ScanYear.GetType()
$ScanMonth.GetType()
Возвращает ..
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
True True Int32 System.ValueType
True True Int32 System.ValueType
Вопрос в том, когда я пытаюсь и складывать и вычитать эти целые числа, я получаю неправильный результат?
$Total = [int]$ScanDay + [int]$ScanMonth
Write-Host $Total
Так значения 24 + 7 выйдет в 102 не 31.
Что мне не хватает? Любая помощь приветствуется :)
Обновлено
Ok, так что я хотел бы добавить окончательное сравнение code..After говорят значение базы данных было истолковано как PowerShell DATETIME я мог бы сделать все, как это.
$Date = Get-Date
$Date = $Date.ToUniversalTime()
$DayDifference = New-TimeSpan -Start $Date -End $Row[3]
if ($DayDifference.TotalDays -gt 5) { 'Do Something' }
'$ Scan' является' [String] ', поэтому' $ Scan [0] 'является' [Char] '. '[Char]' casted to '[int]' создает код. Таким образом, '$ ScanMonth' является кодовым числом' 7' 55, а '$ ScanDay' является кодовым числом'/'47. 55 + 47 = 102. – PetSerAl
Ahh, так что значения по-прежнему не являются истинными числами? Как я могу сделать их числами вместо кодовых точек? – LDStewart
Это числа, но '$ scan.split ('/');' мало что делает. try '$ scan = $ scan.split ('/');' – Cole9350