9 ответов:
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зарезервированы ли слова Oracle для этой цели. Они являются аналогом метки времени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')компоненты формата времени, я надеюсь, не требуют пояснений, за исключением того, что FF3 означает 3 цифры субсекундной точности. Вы можете пойти до 6 цифр точность.
Если вы вставляете из приложения, лучший ответ может зависеть от того, как значение даты/времени хранится на вашем языке. Например, вы можете сопоставить определенные объекты Java непосредственно со столбцом TIMESTAMP, но вам нужно понять сопоставления типов JDBC.
Я предпочитаю ANSI timestamp литералы:
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.setinputsize(...):
mycursor = connection.cursor(); mycursor.setinputsize( mytimestamp=cx_Oracle.TIMESTAMP ); params = { 'mytimestamp': timestampVar }; cusrsor.execute("INSERT INTO mytable (timestamp_field9 VALUES(:mytimestamp)", params);не требуется преобразование в БД. Смотрите Документация 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)
Comments