2014-03-25 1 views
0

powershell에서 데이터 테이블을 만듭니다.export-csv가 내 날짜 형식을 파기합니다.

SELECT RIGHT('0' + cast(day(GETDATE()) as varchar(2)),2) + '-' + CAST(DATENAME(MONTH, GETDATE()) AS VARCHAR(3)) + '-' + cast(DATEPART(year, GETDATE()) as varchar(4)) 

그래서 실제 값은 다음과 같습니다 : 나는 다음을 사용할 때 DD-MMM-YYYY는

제외

, 날짜 형식이-MMM dd는 변경되는 데이터 테이블의 열은 형식화 된 날짜, 거기에 -yy

$dtResult | export-csv $outputFile -notypeinformation 

는 DD-MMM-YYYY로 날짜를 얻을

환호 것이 중요하다

+0

데이터 테이블을 생성하는 코드를 표시 할 수 있습니까? 현재 세션에 대한 datetime 형식 중 하나를 일시적으로 설정하는 방법 인 http://stackoverflow.com/a/14910743/478656 - export-csv에서 해당 형식을 사용합니다. 덕분에 – TessellatingHeckler

답변

2

날짜가 데이터 테이블에 DateTime으로 저장되어있는 것처럼 들리므로 형식을 지정하기 위해 시스템 기본값이 사용됩니다. 이 주위에 한 가지 방법은 그 과정에서 문자열로 날짜를 변환, 첫 번째 개체의 컬렉션에 데이터 테이블을 변환하는 것입니다 :

$dtObjects = $dtResult | Select-Object ID, Name, @{n="DateField";e={$_.DateField.ToString("dd-MMM-yyyy"}} 

는 실제 필드 이름과 필드 이름을 바꿉니다.

+0

; 나는 너의 제안을 시도했다. 날짜는 여전히 "yy"형식이 아니라 "yyyy"형식입니다. $ dtObjects = $ ($ dtResult | Select-Object @ {n = "거래 날짜"; e = {$ ((datetime) $ _. TradeDate) .tostring ("dd-MMM -yyyy "))}}) $ dtObjects | export-csv $ outputFile -notypeinformation – DotNet98

+0

원시 csv 파일을 볼 때 또는 Excel이나 다른 응용 프로그램으로 가져올 때 잘못된 날짜 형식이 표시됩니까? – KevinD

+0

잘못된 날짜 형식은 .csv 파일을 열 때만 나타납니다 (내보내기 후에). 원본 데이터 테이블의 실제 값과 새 개체 컬렉션이 모두 유효합니다. 이 문제를 일으키는 내보내기 비트입니다 – DotNet98

관련 문제