오라클 SQL 테이블의 날짜 업데이트
SQL 테이블에서 날짜를 업데이트하려고 합니다.Peoplesoft Oracle을 사용하고 있습니다.이 쿼리를 실행할 때:
Select ASOFDATE from PASOFDATE;
2012년 4월 16일 취득
이 쿼리를 실행하려고 했습니다.
UPDATE PASOFDATE SET ASOFDATE = '11/21/2012';
근데 안 되네.
원하는 날짜로 변경하는 방법을 아는 사람 있나요?
이는 날짜 형식에 대해 잘못된 월 값이나 숫자가 아닌 문자(숫자가 예상될 경우)와 같은 오류가 발생한다는 가정에 기초합니다.
데이터베이스에 저장된 날짜에는 형식이 없습니다.클라이언트가 표시할 날짜 형식을 지정하는 날짜를 쿼리할 때 다음과 같이 입력합니다.4/16/2011일반적으로 날짜 선택과 업데이트에는 동일한 날짜 형식이 사용되지만, 이 경우 서로 다른 것으로 보입니다.따라서 클라이언트는 SQL*Plus보다 더 복잡한 작업을 수행하고 있는 것 같습니다.
업데이트를 시도하면 기본 날짜 형식 모델이 사용됩니다.표시 방식 때문에 당신은 그게 그렇게 생각하시는 거죠?MM/DD/YYYY하지만 아닌 것 같아요어떤 모델인지 알 수 있지만 기본 형식 모델이나 암시 형식 모델에는 전혀 의존하지 않는 것이 좋습니다.
이것이 문제인지 여부에 관계없이 항상 날짜 모델을 지정해야 합니다.
UPDATE PASOFDATE SET ASOFDATE = TO_DATE('11/21/2012', 'MM/DD/YYYY');
시간 구성요소를 지정하지 않기 때문에 모든 OracleDATE열에 시간이 포함되어 있습니다(자정이더라도). 날짜 리터럴을 사용할 수도 있습니다.
UPDATE PASOFDATE SET ASOFDATE = DATE '2012-11-21';
현재 값에 시간이 포함되어 있지 않은지 확인해야 할 수도 있지만 열 이름에는 시간이 포함되어 있지 않습니다.
날짜와 시간을 설정하는 방법은 다음과 같습니다.
update user set expiry_date=TO_DATE('31/DEC/2017 12:59:59', 'dd/mm/yyyy hh24:mi:ss') where id=123;
이 SQL이 Peoplesoft 고유의 코드(Application Engine, SQLEXEC, SQLfetch 등)에서 사용되는 경우%Date in metaSQL 을 사용할 수 있습니다.Peopletools는 자동으로 날짜를 애플리케이션이 실행 중인 데이터베이스 플랫폼에서 허용하는 형식으로 변환합니다.
이 SQL을 사용하여 쿼리 분석기(SQLDeveloper, SQLTools 등)에서 백엔드 업데이트를 수행하는 경우 사용되는 날짜 형식이 잘못되었습니다.Oracle은 날짜 형식을 DD-MM-YYY로 예상하고 있으며, 여기서 MMM은 JAN, FEB, MAR 등이 될 수 있습니다.
Alex Pool의 답변에 덧붙이자면, 날짜와 시간은 다음과 같습니다.
TO_DATE('31/DEC/2017 12:59:59', 'dd/mm/yyyy hh24:mi:ss')
언급URL : https://stackoverflow.com/questions/13497130/updating-a-date-in-oracle-sql-table
'programing' 카테고리의 다른 글
| JOIN의 ON 절에서 참조되는 테이블의 순서가 중요합니까? (0) | 2023.04.04 |
|---|---|
| Get_posts는 X일 이내 - Wordpress (0) | 2023.04.04 |
| $rootScope를 사용하는 이유는 무엇입니까?AngularJS로 $broadcast? (0) | 2023.04.04 |
| @Spring Boot Test에서의 값 "플레이스 홀더를 해결할 수 없습니다" (0) | 2023.04.04 |
| 서버 검색 및 모니터링 엔진은 더 이상 사용되지 않습니다. (0) | 2023.03.25 |