导入CSV查找已通过的分钟数

时间:2012-08-09 21:39:59

标签: powershell

我想最终从csv转到html。我以前做过类似的事情,但需要在数据准备好之前完成一步。我需要得到开始时间,而不是及时,但是经过了几分钟。

当我引入数据时,其中一列的格式如下:

mSTART:
2012-08-07 15:58:57.043
2012-08-07 11:00:45.350
2012-08-07 15:54:47.870
2012-08-07 15:44:28.557

我想将这些数据操作到一个列中。

Duration:
38 minutes
70 minutes
108 minutes

在几分钟内就会[(now)-(the start time)]

我当前的import-csv行如下所示:

import-csv .\mydata.csv -header mID, mDES, mTYPE, mVAL, mSTART, mEFF, mDT, mDTDES | Select mDES, mSTART, @{Name="DT";Expression={ $_.mDT+" - "+$_.mDTDES}}

1 个答案:

答案 0 :(得分:1)

使用get-date命令行开关将日期列中的文本转换为日期对象。

从当前时间中减去该结果,返回timespan object。如果您只想过分钟,请调用该对象上的TotalMinutes属性。

import-csv .\mydata.csv -header mID, mDES, mTYPE, mVAL, mSTART, mEFF, mDT, mDTDES | 
    Select mDES, mSTART, @{Name="DT";Expression={ $_.mDT+" - "+$_.mDTDES}, @{Name="Duration";Expression={ ((get-date) - (get-date $_.mStart)).TotalMinutes} }