2012-09-07 3 views
2

현재 오라클 데이터베이스의 항목은 dd/mm/yyyy hh:mm:ss 형식이지만, 다음과 같이 저장해야합니다. yyyy-mm-dd hh:mm:ss.Oracle Database 용 사용자 정의 DateTime 형식

나는 두 가지 접근법을 시도했다. 처음 시도한 부분은 날짜의 문자열 버전을 여러 부분으로 나눠서 다시 출력하여 원하는 결과물을 제공합니다. 그러나 이것을 DateTime 객체로 변환하면 원래 형식으로 되돌립니다. 여기 코드는 다음과 같습니다

public static DateTime FormatDateTimeForPDB(string dateTimeString) 
{ 
    DateTime formattedDateTime; 
    char[] illegals = { '/', ' ', ':' }; 

    string[] array = dateTimeString.Split(illegals); 
    string date = array[2] + "-" + array[1] + "-" + array[0] + " " + array[3] + ":" + array[4] + ":" + array[5]; 

    formattedDateTime = Convert.ToDateTime(date);  
    return formattedDateTime; 
} 

Convert.ToDateTime(date)에 중단 점은 내가 원하는 형식 2012년 9월 7일 15시 1분 3초으로 날짜를 표시하지만, 문자열이 아닌 날짜 시간으로.

here을 통해 사용자 tatis에 의해 논의 된 바와 같이 나는 또한 DateTimeFormatInfo 속성을 사용하여 시도했지만, 어떻게 관리되는 모든는 월, 일 필드 (나에게 mm/dd/yyyy hh:mm:ss을주는) 스왑이었다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

. 데이터베이스 내에 "형식"이 없습니다. – Oded

+2

날짜가 날짜로 저장되어 있지 않으면 DB 스키마를 수행 한 사람을 시작하십시오. –

+1

@SteveB 나는 그런 종류의 권위가 없다. Oded, 사실이지만 C#에는 형식이 필요합니다. 다시 가져 오는 형식이 올바르지 않습니다. – Skulmuk

답변

2

C#에서 DateTime으로 날짜 문자열을 파싱하는 것이 걱정된다면 DateTime의 ParseExact 메서드를 살펴보십시오. 문서 here. 이 같은

뭔가 다음 SQL 도구가 저장되는 방법 당신에 저장된 정보를 표시하는 방법 당신은 혼동

CultureInfo provider = CultureInfo.InvariantCulture; 
String format = "dd/MM/yyyy hh:mm:ss"; 
return DateTime.ParseExact(dateString, format, provider);