我使用now()::timestamp在postgres表值中设置或插入时间
但是在oracle数据库中不工作。
这是表格:
create table types
(
id number not null,
description varchar(255) not null,
created_at timestamp null,
updated_at timestamp null,
deleted_at timestamp null,
CONSTRAINT autenticacion_id PRIMARY KEY (id)
);
插入数据:
insert into types (id, description) values (1, 'hello world', now()::timestamp)
但是我得到:
ORA-00917:缺少逗号
insert into types (id, description) values (1, 'hello world', (select sysdate from dual))
我:
ORA-00942:表或视图不存在
- 您提供了3个值,并且只给出了您要插入的2列。
SYSDATE
为DATE
数据类型,SYSTIMESTAMP
为TIMESTAMP
数据类型;它们都有日期和时间组件,但SYSTIMESTAMP
也有小数秒(和时区,但将被忽略,因为您插入的列是TIMESTAMP
而不是TIMESTAMP WITH TIME ZONE
数据类型)。
你可能想要的是:
INSERT INTO types (id, description, created_at)
VALUES (1, 'hello world', SYSTIMESTAMP)
但是,您可能需要考虑时间戳应该在特定的时区(通常是UTC):
INSERT INTO types (id, description, created_at)
VALUES (1, 'hello world', SYSTIMESTAMP AT TIME ZONE 'UTC')
注意:您可以在(SELECT value FROM DUAL)
中包装值,但这不是必需的。
小提琴