【问题标题】:Powershell/Logparsing Casting Data TypePowershell/Logparsing 转换数据类型
【发布时间】:2012-03-10 02:16:04
【问题描述】:

我也在 powershell usenet 组上发布了这个,但我认为它现在基本上已经死了。

我正在忙于编写脚本。同时使用 powershell 和 日志解析器。我目前正在尝试将 csv 输入和输出转换为 数据库。我有一个很好的工作脚本,但有一个问题。

我的一个字段应该是日期时间类型。但是导出的 csv 从 powershell 通过 export-csv 使它成为一个字符串。我更喜欢它 是日期时间格式。我研究了类型转换(使用 LogParser)和 进入 ParseExact(使用 powershell),但我迷路了。

这是 export-csv 正在制作的 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 数据库让我知道,我会发布它。我对演员发生的地方没有偏好。我在 powershell 中制作 CSV,然后通过 logparser 将其复制到 Access 中的表中。

感谢收看。

【问题讨论】:

  • parseexact 似乎没有必要。该日期格式使用默认解析方法解析得很好:[datetime]"06/28/2011 12:53:13"
  • [datetime] 或 [datetime] 都不行::
  • 使用您发布的测试数据作为 test_csv.csv,这会吐出 [datetime] 对象:import-csv test_csv.csv | foreach {$_.time -as [日期时间]}
  • 这样:import-csv test_csv.csv |% {[datetime]$($_.time)}
  • 我开始认为这可能是区域设置。

标签: powershell logparser


【解决方案1】:

【讨论】:

  • 这适用于 OGV 并在我执行 export-csv 时将格式更改为 AM/PM,但是当我使用 logparser 放入数据库时​​,它仍然将其视为字符串。
  • 您导出到 csv 的任何内容都将导出为字符串 - 所有 csv 数据都是字符串值。如果在提交到数据库时需要对其进行强类型化,则需要在从 csv 导入之后和提交之前对其进行重新转换。 Logparser 可能无法处理除字符串数据之外的任何内容。
  • 好的。谢谢你的帮助。我试图投票赞成你的答案,但它说我没有足够的代表点数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多