【问题标题】:casting column from csv as date powershell将 csv 中的列转换为日期 powershell
【发布时间】:2012-05-22 01:16:22
【问题描述】:

我有一个类似的 csv

"fundName","MMFcusip","ticker","AsOfDate","SumHoldingPercent"
"BlackRock OH Muni MMP/Instit","'091927236'","COIXX","2/29/2012 12:00:00 AM","100.00000000200"
"Western Asset Inst US Treas Res","'52470G841'","CIIXX","2/29/2012 12:00:00 AM","100.00000000200"

使用 powershell,如何在使用 import-csv cmdlet 时将“asOfDate”转换为日期/时间?

编辑:这是我目前正在使用的代码行

$measuredDate = $today.AddDays(-21)
$staleDates = Import-Csv d:\path\file.csv | Foreach-Object {$_.AsOfDate = Get-Date $_.AsOfDate} | Where-Object {asOfDate -lt $measuredDate} | Measure-Object

【问题讨论】:

  • 当你将使用该值而不是在 import-csv 期间为什么不强制转换它?
  • 这也可以,但我相信我仍然不确定我会怎么做!我只需要将此日期与存储在变量中的日期进行比较,以查看它是否比变量中的日期旧

标签: date powershell csv casting


【解决方案1】:
Import-Csv file.csv |
Where-Object { ![string]::IsNullOrWhiteSpace($_.AsOfDate) } | 
Foreach-Object {
   $_.AsOfDate = $_.AsOfDate -as [datetime]
   $_
}

【讨论】:

  • 对脚本进行了此更改,但由于某些行的 asOfDates 为空 (""),因此出现了一堆错误。知道如何解决这个问题吗?
  • 我还编辑了我的原始帖子,以显示我目前正在使用的确切代码行。感谢您的帮助!
  • 我可以有两个“where对象”吗?如果你看上面我已经在使用一个来缩小我的搜索范围
  • 我还收到消息 [system.string] 不包含名为“IsNullOrWhiteSpace”的方法
  • 我不知道 PowerShell v1 但它在 v2 及更高版本上可用。无论如何,你可以使用这个: Where-Object {$_.AsOfDate} | ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多