当前位置:  开发笔记 > 前端 > 正文

Redshift:使用Timestamp列创建一个默认为Now()的表

如何解决《Redshift:使用Timestamp列创建一个默认为Now()的表》经验,为你挑选了1个好方法。

有没有办法创建一个时间戳列默认为现在的表?

以下任何一项在创建时都会成功,但在插入时会失败.

CREATE TABLE MyTable
(
device_id         VARCHAR(64) NOT NULL encode lzo,
app_id            VARCHAR(150) NOT NULL distkey encode lzo,
retrieval_date    TIMESTAMP without time zone default (now() at time zone 'utc') encode lzo
)
diststyle key
compound sortkey(app_id,device_id);

然后插入:

     insert into MyTable (device_id,app_id) values('a','b');
INFO:  Function "timezone(text,timestamp with time zone)" not supported.
INFO:  Function "now()" not supported.
ERROR:  Specified types or functions (one per INFO message) not supported on Redshift tables.

我尝试了以下其他口味,但都失败了.

a)现在用单引号'now'试过,创建成功但失败了另一个错误

b)尝试没有时区,创建成功,插入失败.



1> Masashi Miya..:

您可以使用SYSDATEGETDATE()设置当前时间戳值.这是一个例子.

dev=> create table my_table (id int, created_at datetime default sysdate);
CREATE TABLE

dev=> insert into my_table (id) values (1);
INSERT 0 1

dev=> select * from my_table;
 id |        created_at
----+---------------------------
  1 | 2016-01-04 19:07:14.18745
(1 row)

SYSDATE(Oracle兼容性功能)

http://docs.aws.amazon.com/redshift/latest/dg/r_SYSDATE.html

GETDATE()

http://docs.aws.amazon.com/redshift/latest/dg/r_GETDATE.html


DEFAULT CONVERT_TIMEZONE('Asia/Kolkata',GETDATE())http://docs.aws.amazon.com/redshift/latest/dg/CONVERT_TIMEZONE.html
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有