Ошибка при преобразовании импортированного столбца CSV во все даты и времени в PowerShell - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть импортированный файл CSV с 5 столбцами чисел и одним столбцом даты и времени.

Поскольку все они выглядят как строки, я успешно преобразовал числа в целые числа, но, похоже, получаю ошибку при преобразовании даты в datetime ...

Мне помогла статья Преобразование строки в datetime в PowerShell , но хотя я абсолютно уверен, что я не ошибаюсь в разборе даты, она не работает, и я получить то же сообщение об ошибке, с которым столкнулся пользователь в этой статье.

Это потому, что я не собираюсь корректно менять тип данных для всех столбцов?

$import = Import-Csv C:\path\csv.csv

$time = $import | select Time #time is the name of column

[DateTime]::ParseExact($time, "M/d/yyyy h:mm tt", $null)

Но мой вывод все еще ...

Method invocation failed because [System.Int32] does not contain a method 
named 'ParseExact'.
At line:6 char:1
+ [int32]::ParseExact($time, "M/d/yyyy h:mm tt", $null)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Собираюсь ли я преобразовать весь столбец правильным образом?

1 Ответ

0 голосов
/ 18 апреля 2019

Как писал @Scepticalist, без исходных данных это немного сложнее

Когда вы импортируете CSV сейчас, свойство для столбца времени, скорее всего, определяется какстрока.

Вы можете проверить это следующим образом:

$import | get-member *

Имея это в виду и используя этот простой CSV в качестве примера:

Time,Num1,Num2,Num3  
11/15/2019,1234,2345,3456
11/16/2019,2345,3456,4567
11/17/2019,3456,4567,5678

Я могу разыграть «Время»«Столбец как DateTime в то же время я импортирую CSV:

$csv = Import-Csv C:\Temp\CSV.csv |
Foreach-Object {
   $_.Time = $_.Time -as [datetime]
   $_
}

Теперь, когда я проверяю свойства переменной $ csv:

$csv | get-member *

Теперь« Определение »столбец «Время» будет в правильном формате «DateTime».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...