programing

Oracle에서 타임 스탬프를 삽입하는 방법은 무엇입니까?

nasanasas 2020. 10. 7. 07:45
반응형

Oracle에서 타임 스탬프를 삽입하는 방법은 무엇입니까?


timestamp필드 가있는 Oracle DB가 있습니다. timestamp이 필드 에 삽입 할 올바른 SQL 코드는 무엇입니까 ?


insert
into tablename (timestamp_value)
values (TO_TIMESTAMP(:ts_val, 'YYYY-MM-DD HH24:MI:SS'));

현재 타임 스탬프를 삽입하려면 다음을 수행하십시오.

insert
into tablename (timestamp_value)
values (CURRENT_TIMESTAMP);

INSERT
INTO    mytable (timestamp_field)
VALUES  (CURRENT_TIMESTAMP)

CURRENT_TIMESTAMP그리고 SYSTIMESTAMP오라클이 목적을 위해 예약 된 단어. 그것들은의 타임 스탬프 아날로그입니다 SYSDATE.


INSERT INTO TABLE_NAME (TIMESTAMP_VALUE) VALUES (TO_TIMESTAMP('2014-07-02 06:14:00.742000000', 'YYYY-MM-DD HH24:MI:SS.FF'));

종류는 삽입하려는 값의 출처에 따라 다릅니다. 현재 시간을 삽입하려면 CURRENT_TIMESTAMP다른 답변 (또는 SYSTIMESTAMP) 과 같이 사용할 수 있습니다 .

시간이 문자열로 있고이를 타임 스탬프로 변환하려면 다음과 같은 표현식을 사용하십시오.

to_timestamp(:timestamp_as_string,'MM/DD/YYYY HH24:MI:SS.FF3')

시간 형식 구성 요소는 FF33 자리 이하의 정밀도 의미 하는 것을 제외하고는 자체 설명이 필요 합니다. 6 자리의 정밀도까지 올릴 수 있습니다.

응용 프로그램에서 삽입하는 경우 가장 좋은 답변은 날짜 / 시간 값이 사용자 언어로 저장되는 방식에 따라 달라질 수 있습니다. 예를 들어 특정 Java 객체를 TIMESTAMP열에 직접 매핑 할 수 있지만 JDBC유형 매핑 을 이해해야 합니다.


ANSI 타임 스탬프 리터럴을 선호합니다.

insert into the_table 
  (the_timestamp_column)
values 
  (timestamp '2017-10-12 21:22:23');

매뉴얼의 자세한 내용 : https://docs.oracle.com/database/121/SQLRF/sql_elements003.htm#SQLRF51062


SQL에 날짜 삽입

insert
into tablename (timestamp_value)
values ('dd-mm-yyyy hh-mm-ss AM');

시스템 날짜를 삽입하고 싶다면

insert
into tablename (timestamp_value)
values (sysdate);

먼저 필드를 Nullable로 설정해야합니다. 그런 다음 값을 넣는 대신이 코드를 넣어야합니다 CURRENT_TIMESTAMP.


내 자신의 미래 참조 :

cx_Oracle 사용 cursor.setinputsize (...) :

mycursor = connection.cursor();

mycursor.setinputsize( mytimestamp=cx_Oracle.TIMESTAMP );
params = { 'mytimestamp': timestampVar };
cusrsor.execute("INSERT INTO mytable (timestamp_field9 VALUES(:mytimestamp)", params);

db에서 변환이 필요하지 않습니다. Oracle 문서 참조


하나는 단순히 사용할 수 있습니다

INSERT INTO MY_TABLE(MY_TIMESTAMP_FIELD)
VALUES (TIMESTAMP '2019-02-15 13:22:11.871+02:00');

이렇게하면 날짜 형식 문자열에 대해 걱정할 필요가 없으며 기본 타임 스탬프 형식 만 사용하면됩니다.

Oracle 11에서 작동하며 이전 Oracle 버전에서도 작동하는지 알 수 없습니다.


CREATE TABLE Table1 (
id int identity(1, 1) NOT NULL,
Somecolmn varchar (5),
LastChanged [timestamp] NOT NULL)

이것은 mssql 2012에서 작동합니다.

INSERT INTO Table1 VALUES('hello',DEFAULT)  

참고 URL : https://stackoverflow.com/questions/5420833/how-to-insert-a-timestamp-in-oracle

반응형