sql - 如何在Oracle中插入时间戳?
我有一个带有timestamp字段的Oracle DB。 将timestamp插入此字段的正确SQL代码是什么?
Mike Rifgin asked 2019-06-16T10:46:04Z
9个解决方案
107 votes
insert
into tablename (timestamp_value)
values (TO_TIMESTAMP(:ts_val, 'YYYY-MM-DD HH24:MI:SS'));
如果要插入当前时间戳,则:
insert
into tablename (timestamp_value)
values (CURRENT_TIMESTAMP);
reggie answered 2019-06-16T10:46:21Z
22 votes
INSERT
INTO mytable (timestamp_field)
VALUES (CURRENT_TIMESTAMP)
CURRENT_TIMESTAMP和SYSTIMESTAMP是用于此目的的Oracle保留字。 它们是SYSDATE的时间戳类比。
Quassnoi answered 2019-06-16T10:46:48Z
14 votes
INSERT INTO TABLE_NAME (TIMESTAMP_VALUE) VALUES (TO_TIMESTAMP('2014-07-02 06:14:00.742000000', 'YYYY-MM-DD HH24:MI:SS.FF'));
Kash answered 2019-06-16T10:47:11Z
8 votes
取决于您要插入的值的来源。 如果要插入当前时间,可以使用CURRENT_TIMESTAMP,如其他答案(或SYSTIMESTAMP)所示。
如果您将时间作为字符串并希望将其转换为时间戳,请使用类似的表达式
to_timestamp(:timestamp_as_string,'MM/DD/YYYY HH24:MI:SS.FF3')
我希望时间格式组件是不言自明的,除了FF3表示亚秒精度的3位数。 你可以高达6位数的精度。
如果从应用程序插入,最佳答案可能取决于日期/时间值如何以您的语言存储。 例如,您可以将某些Java对象直接映射到TIMESTAMP列,但您需要了解JDBC类型映射。
Dave Costa answered 2019-06-16T10:48:03Z
2 votes
我更喜欢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]
a_horse_with_no_name answered 2019-06-16T10:48:36Z
1 votes
在sql中插入日期
insert
into tablename (timestamp_value)
values ('dd-mm-yyyy hh-mm-ss AM');
如果我们想插入系统日期
insert
into tablename (timestamp_value)
values (sysdate);
Sai Krishna answered 2019-06-16T10:49:10Z
0 votes
首先你需要让字段为Nullable,之后就这么简单 - 而不是把值放到这个代码CURRENT_TIMESTAMP。
Ahuramazda answered 2019-06-16T10:49:38Z
0 votes
对于我自己将来的参考:
使用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文档
SeSpoon answered 2019-06-16T10:50:18Z
-5 votes
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)
VGuest answered 2019-06-16T10:50:44Z