2009-11-05 8 views
0

우리는 애플리케이션에서 TypedDataSet을 사용하고 있습니다. 데이터는 삽입/업데이트를 위해 XML 형식의 프로 시저로 전달됩니다.시간대 조정 - XML ​​DateTime을 SQL DateTime으로 변환

이제 DE에 데이터를 채운 후 시간대 정보가 아래에 추가 되더라도 datetime은 동일하게 유지됩니다. DB에서

날짜 : 2009-10-29 18 : 52 : XML에서 53.43 날짜 : 2009-10-29T18 : 52 : 53.43-05 : I가 XML 이하로 변환하려고 이제 00

SQL DateTime은 5 시간을 조절하고 있는데, 최종 출력으로

2009-10-29 23 : 52 : 53.430 이 잘못되었습니다. 시간대를 무시하고 XML 스 니펫 아래에서 datetime을 추출하는 방법을 찾아야합니다. 52 :

난 시간대 차이, 다음과 같은 형식으로 -05.00

<Order> 
    <EnteredDateTime>2009-10-29T18:52:53.43-05:00</EnteredDateTime> 
</Order> 

답변

0

2009-10-29 18 XML을 52 : 53.43이 2009-10-29T18과 동시에 아니다 53.43-05 : 00. 그것은 잘못된 첫 번째 단계입니다. XML에서 SQL DateTime으로의 변환이 정확합니다.

ISO 8601

+0

좋아. 나는 이해. 그렇다면 해결책은 무엇입니까? 내가 선택한 선언문을 변경해야합니까? "2009-10-29 18 : 52 : 53.43"이 "2009-10-29T18 : 52 : 53.43-05 : 00"으로 변환되는 이유는 무엇입니까? –

+0

SQL Server 출력을 해당 형식으로 보지 못했습니다. DB-> XML 문자열은 어디에서 발생합니까? 그게 문제가되는 곳입니다. 이 코드를 제어 할 수 있습니까? – Bryan

+0

나는 그렇지 않다. 우리는 엔터프라이즈 라이브러리를 사용하여이 데이터 집합을 채 웁니다. –

0

먼저 입력 XSD 날짜 시간으로 변환 한 후 SQL 날짜에 그 값을 변환 할 값의 방법을 사용합니다.

select convert(xml, '<DateTimeWithTimeZone>2012-09-15T16:08:14.787-05:00</DateTimeWithTimeZone>').value('xs:dateTime(/DateTimeWithTimeZone[1])', 'datetime') 

Convert datetime with time zone to SQL datetime