在Powershell中隔离时间和日期

时间:2019-04-16 15:34:38

标签: powershell

我的日期和时间的格式如下:

Get-Date -f "M/d/yyyy h:mm tt"

看起来像这样

4/16/2019 4:19 PM

所以现在,我只想选择时间大于8:00 AM和5:00 PM的那些对象,但是日期没有任何意义,我希望每个日期都选择相同的时间。

我该怎么做才能在时间上使用where对象选择,但是在日期上却不加区分?

1 个答案:

答案 0 :(得分:0)

您应该始终根据[字符串]表示法区分[日期时间]和它的语言环境/用户设置。

您只能使用select custid , sum(case when valuetype='A' then cost else 0 end) A, sum(case when valuetype='B' then cost else 0 end) B ,sum(case when valuetype='C' then cost else 0 end) C from t group by custid 类型进行计算。隔离时间分量:

[datetime]

或类似地

> ([datetime]::now).TimeOfDay


Days              : 0
Hours             : 19
Minutes           : 7
Seconds           : 8
Milliseconds      : 413
Ticks             : 688284139558
TotalDays         : 0,796625161525463
TotalHours        : 19,1190038766111
TotalMinutes      : 1147,14023259667
TotalSeconds      : 68828,4139558
TotalMilliseconds : 68828413,9558

一旦涉及格式(> (Get-Date).TimeOfDay Days : 0 Hours : 19 Minutes : 7 Seconds : 34 Milliseconds : 841 Ticks : 688548416521 TotalDays : 0,796931037640046 TotalHours : 19,1263449033611 TotalMinutes : 1147,58069420167 TotalSeconds : 68854,8416521 TotalMilliseconds : 68854841,6521 Get-Date -f "h:m:s"),您就会得到一个字符串,该字符串首先必须转换回.ToString('T')

根据@PetSerAls的宝贵提示,您可以使用:

[datetime]

要检查TimeOfDay组件是否在定义的工作时间内。