오라클 시간 입력 질문 0 2 9,044

by 다어려워 [Oracle 기초] oracle timestamp [2020.08.04 10:47:50]


오라클을 처음 써보는데요

시작 시간, 종료시간을 관리하기 위해서 timestamp 형태로 지정하였습니다.

그리고 시작시간 '11:00', 종료시간 '15:00' 이러한 형태로 INSERT 쿼리를 썼는데 오류가 뜨더라고요

그래서 데이터 타입이 잘못된 것을 확인하고 TO_TIMESTAMP('15:00:00','HH24HISS') 이러한 형태로 변형?을 했는데도

제가 원하는 형태로 데이터를 못 넣는 것을 확인했습니다.

날짜를 포함하지 않고 사용자가 시간 입력하여 [ex)09:00, 17:00] 데이터를 저장하려고 하는데

쿼리를 어떻게 작성해야 하는지 혹은 데이터타입을 varchar로 바꿔서 저장을 시켜야하는지

잘 몰라서 질문 드립니다

by 우리집아찌 [2020.08.04 11:25:38]

종료시간이 다음날로 넘어가는 경우는 없나요?

timestamp 는 밀리세컨드 단위로 저장되니 필요하지 않으면 DATE 타입으로 만드는걸 권장합니다.

SELECT TO_DATE('09:00','HH24:MI')                            FROM DUAL  --  시간:분으로 DATE TYPE 변경 

SELECT TO_TIMESTAMP('09:00','HH24:MI')                   FROM DUAL  --  시간:분으로 TIMESTAMP TYPE 변경 
 


by 마농 [2020.08.04 13:07:43]

다른 DB 의 경우 TIME(시간), DATE(일자), DATETIME(일시, 밀리초까지), SMALLDATETIME(일시, 분까지) 형이 모두 사용되는데.
오라클의 경우 (시간)이나 (일자)형은 별도로 없습니다. date 형이 (일시,초까지) 처럼 쓰입니다.
엄밀히 말하면 타DB(MSSQL, MySQL) 의 datetime 은 오라클의 timestamp 와 대응됩니다.
오라클의 경우 date 형으로 선언하여 날짜와 시간을 같이 저장하셔야 합니다.
시간 저장은 문자형에 저장해도 되고, 숫자형에 저장해도 됩니다. 날짜형에 저장해도 되구요.
저장된 값을 어디에 어떻게 사용할 것인지에 따라 사용하기 편한 것으로 선택하시면 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입