Percebo que isso deve ser uma tarefa simples, mas não estou vendo os resultados que espero ver. Estou importando um arquivo CSV e tentando filtrar as datas que já passaram e manter apenas as datas que são iguais a hoje ou no futuro.
Como exemplo simples, tenho um arquivo csv com o seguinte:
Se eu executar o código a seguir, não estou vendo os resultados esperados; datas que são iguais hoje ou no futuro:
$Today = Get-date
$data = import-csv C:\temp\ReleaseRequest2.csv
$data | where {$_.expires -ge $Today} | select expires
Quando executo o comando acima, recebo os seguintes resultados:
O objetivo é retornar apenas datas que sejam iguais a hoje ou no futuro. Existe alguma formatação das datas que eu preciso fazer antes de tentar filtrá-las? Sei que é uma solução simples, mas estou batendo a cabeça contra a parede tentando descobrir.
Agradeço antecipadamente.
Converta as datas em um
datetime
objeto antes de compará-las. Você pode ver por que seu código está falhando com este teste simples:Então, na sua condição de filtragem, se você adicionar o elenco,
[datetime]
o problema deverá ser resolvido:Usar
Get-Date
para analisá-los também deve funcionar:Se essas opções acima não conseguirem converter as strings em
datetime
objetos, você pode usardatetime.ParseExact
com as strings de formato que suas datas têm, por exemplo:Você poderia ter feito dessa forma e o tipo de comparação seria [data/hora], determinado pelo tipo do lado esquerdo: