Тип данных приведения Powershell/Logparsing

Я также разместил это в группах usenet powershell, но я думаю, что сейчас он в основном мертв.

Я с головой ухожу в работу над сценарием. Работает как с powershell, так и с парсером логов. В настоящее время я пытаюсь ввести и вывести csv в accdb. У меня есть хороший рабочий скрипт, с одной проблемой.

Одно из моих полей должно иметь тип datetime. Однако csv, который экспортируется из powershell через export-csv, делает его строкой. Я бы предпочел, чтобы это был формат даты и времени. Я изучил приведение типов (с помощью LogParser) и ParseExact (с помощью powershell), но я потерялся.

Вот пример того, что делает CSV, который делает export-csv:

"TIME","TEMP","HUMID","DEWPT"
"06/28/2011 12:53:13","70.9","79.8","63.6"
"06/28/2011 12:23:07","70.8","78.6","63.1"
"06/28/2011 11:53:00","70.8","78.9","63.2"
"06/28/2011 11:22:53","70.7","78.4","62.9"

Вот что я придумал для ParseExact (в powershell):

{ [datetime]::ParseExact($_."TIME","MM'/'dd'/'YYYY' 'HH':'MM':'SS") }

Если вам нужно увидеть код, который я использую для добавления данных csv в базу данных accdb, дайте мне знать, и я опубликую его. У меня нет предпочтений относительно того, где происходит актерский состав. Я делаю CSV в powershell и копирую его в таблицу в Access через logparser.

Спасибо, что посмотрели.


person Ty.    schedule 29.06.2011    source источник
comment
Parseexact кажется ненужным. Этот формат даты прекрасно анализируется с использованием метода анализа по умолчанию: [datetime]28.06.2011 12:53:13   -  person mjolinor    schedule 29.06.2011
comment
Не повезло ни с [datetime], ни с [datetime]::   -  person Ty.    schedule 29.06.2011
comment
Используя ваши опубликованные тестовые данные как test_csv.csv, это выдает объекты [datetime]: import-csv test_csv.csv | foreach {$_.time -as [datetime]}   -  person mjolinor    schedule 29.06.2011
comment
Как и это: import-csv test_csv.csv |% {[datetime]$($_.time)}   -  person mjolinor    schedule 29.06.2011
comment
Я начинаю думать, что это могут быть региональные настройки.   -  person mjolinor    schedule 29.06.2011
comment
Это работает. Он изменяет экспортированный csv, чтобы включить информацию о AM/PM. Однако, когда я пытаюсь использовать logparser для вывода в доступ, он по-прежнему видит его как строковый формат.   -  person Ty.    schedule 29.06.2011
comment
Экспортированный CSV форматируется следующим образом: "TIME","TEMP","HUMID","DEWPT" "6/8/2011 12:01:58 AM","70.5","76.3","62.0" "6/8/2011 12:32:07 AM","70.5","77.8","62.5" "6/8/2011 1:02:13 AM","70.5","77.8","62.5" "6/8/2011 1:32:21 AM","70.5","80.2","63.4" "6/8/2011 2:02:27 AM","70.5","79.9","63.3"   -  person Ty.    schedule 29.06.2011


Ответы (1)


Любая помощь здесь?

http://mjolinor.wordpress.com/2011/05/01/typecasting-imported-csv-data/

person mjolinor    schedule 29.06.2011
comment
Это работает для целей OGV и изменяет формат на AM/PM, когда я делаю export-csv, но когда я использую logparser для помещения в базу данных, он по-прежнему видит его как строку. - person Ty.; 29.06.2011
comment
Все, что вы экспортируете в csv, будет экспортировано как строка — все данные csv являются строковыми значениями. Если он должен быть строго типизирован, когда он фиксируется в базе данных, его необходимо повторно преобразовать после его импорта из csv и до его фиксации. Logparser может быть не в состоянии работать ни с чем, кроме строковых данных. - person mjolinor; 29.06.2011
comment
В порядке. Спасибо за вашу помощь. Я пытался проголосовать за ваш ответ, но он говорит, что у меня недостаточно очков репутации. - person Ty.; 29.06.2011