在oracle数据库中选择日期



我使用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列。
  • SYSDATEDATE数据类型,SYSTIMESTAMPTIMESTAMP数据类型;它们都有日期和时间组件,但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)中包装值,但这不是必需的。

小提琴

相关内容

  • 没有找到相关文章

最新更新