如何在Oracle中插入时间戳?

Mik*_*gin 80 sql oracle

我有一个带有timestamp字段的Oracle DB .timestamp在此字段中插入的正确SQL代码是什么?

reg*_*gie 123

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

如果要插入当前时间戳,则:

insert
into tablename (timestamp_value)
values (CURRENT_TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)

  • 为什么使用“TO_DATE”而不是“TO_TIMESTAMP”? (2认同)

Qua*_*noi 23

INSERT
INTO    mytable (timestamp_field)
VALUES  (CURRENT_TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)

CURRENT_TIMESTAMP并且SYSTIMESTAMP是用于此目的的Oracle保留字.它们是时间戳的类比SYSDATE.


小智 18

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


Dav*_*sta 9

取决于您要插入的值的来源.如果要插入当前时间,可以使用CURRENT_TIMESTAMP,如其他答案(或SYSTIMESTAMP)所示.

如果您将时间作为字符串并希望将其转换为时间戳,请使用类似的表达式

to_timestamp(:timestamp_as_string,'MM/DD/YYYY HH24:MI:SS.FF3')
Run Code Online (Sandbox Code Playgroud)

我希望时间格式组件是不言自明的,除了FF3表示亚秒精度的3位数.你可以高达6位数的精度.

如果从应用程序插入,最佳答案可能取决于日期/时间值如何以您的语言存储.例如,您可以将某些Java对象直接映射到TIMESTAMP列,但您需要了解JDBC类型映射.


a_h*_*ame 5

我更喜欢 ANSI 时间戳文字:

insert into the_table 
  (the_timestamp_column)
values 
  (timestamp '2017-10-12 21:22:23');
Run Code Online (Sandbox Code Playgroud)

手册中的更多详细信息:https : //docs.oracle.com/database/121/SQLRF/sql_elements003.htm#SQLRF51062