2012-04-03 4 views
1

DateTime 필드에서 Hour 부분 만 업데이트하는 방법이 있습니까 ?? 그렇지 않은 경우 Oracle에서 시간 부분을 어떻게 업데이트합니까? 시도해 봤습니다. -oracle의 datetime 필드에서 "시간"부분 만 업데이트하는 방법?

update tab_name 
set C_Name=to_date('04/03/2012 00:31:00','MM/DD/YYYY HH:MI:SS AM') 
where C_Name1=10484; 

제가 시간 부분에서 '00'을 (를) 업데이트하고있어 작동하지 않았습니다.

+0

스택 오버플로에 오신 것을 환영합니다! 나는 당신을 위해 당신의 질문을 형식화하는 자유를 취했습니다. 앞으로는 질문을 게시하기 전에 서식을 지정하십시오. –

+0

'C_NAME'이 (가) 날짜입니까? 이것은 단지 시간을 어떻게 갱신 할까? 문자열의 날짜 부분을 무시하도록 하시겠습니까 (예 : C_NAME이 C_NAME이 현재 오전 12시 31 분에 업데이트 되길 원하십니까?) –

+0

예 Justin, C_Name은 DateTime 필드입니다. 아니요, 그렇지 않습니다. 12:31:00 여기에서 "12"는 "00"으로 대체해야하고, 00:31:00 AM이어야합니다. – palak

답변

1

시간의 한 부분 만 업데이트하고 싶다면 적절한 위치에서 원하는 값으로 문자열로 변환 한 다음 다시 날짜로 변환하십시오. 나는 "31"로 분을 원하는 말 : 당신이 현재의 값으로 시간 부분의 상대를 수정하려면

update tab_name 
set C_Name= 
    to_date( 
    to_char(C_Name, 'MM/DD/YYYY HH24:"31":SS'), 
    'MM/DD/YYYY HH24:MI:SS' 
) 
where C_Name1=10484; 

(예를 들어 2 시간을 추가하거나 3 초 빼기) 다음에 대한 몇 가지 선택이있다 날짜 arithemtic. 오라클 문서는 이러한 것들을 위해 아주 좋습니다.

+0

아담, 답장을 보내 주셔서 감사합니다.하지만이 부분은 무시되었습니다. t_date (to_char (C_Name, 'MM/DD/YYYY "00": HH : SS')) 'MM/DD/YYYY HH24 : MI : SS ') C_Name1 = 10484; ... 시간 "00"으로 만들었고, 여전히 "12"로 저장했습니다. – palak

+0

@palak - 24 시간 형식이 아닌 12 시간 형식으로 표시하지 않으시겠습니까? 'HH24' 형식 마스크를 사용하여 시간을 표시하면 24 시간 형식으로 자정과 오전 1시 사이에 표시되며 시간은 "00"이됩니다. 'HH' 형식 마스크를 사용하여 시간을 표시하면 12 시간 형식으로 표시되어 시간은 항상 1에서 12 사이가됩니다. 데이터베이스에서 날짜는 형식과 함께 저장되지 않습니다. 항상 사람이 읽을 수없는 동일한 이진 형식으로 저장됩니다. 사람이 읽을 수 있도록 날짜를 문자열로 변환해야합니다. –

+0

Justin, UI에서 LocalTime을 표시하지만 데이터베이스에 12 시간 형식으로 저장하면 주된 문제가 생깁니다. - datetime이 6과 오전 6시 30 분, UI에서 그것을 PM으로 표시합니다. 데이터베이스에서 나는 유가 말한대로 HH24로 만들어야한다고 생각합니다. – palak

관련 문제