我正在使用Postgresql处理Amazon Redshift数据库。我有一个时间戳列,我需要将其转换为时间。我使用以下行来确定列属性:
INSERT INTO Izdavanje (registracioniBrojKorisnika, imeKorisnika, identifikacioniBrojKnjige, vremeidatumIzdavanja)
SELECT @rbKorisnika, imeKorisnika, @idKnjige, GetDate()
FROM Korisnici
WHERE registracioniBrojKorisnika=@rbKorisnika
此行详细说明了时间戳列的类型为#time;时间戳没有时区'。
要在Postgresql中测试投射方法,我尝试了以下一行:
select * from pg_table_def where tablename = 'tableA'
将时间戳转换为select '2016-10-01 12:12:12'::time
我想在整个列中重新创建这个时间戳'在我的表中,但遇到以下错误,当我运行以下行时:
'12:12:12'
时间戳列是否有限制,没有时区将其转换为时间?
我错误的是,该列的每条记录都没有转换为时间?
- edit-- @halil这里是我用过的修改过的一行。
select timestamp::time from tableA
'SQL Error [500310] [0A000]: [Amazon](500310) Invalid operation: Specified types or functions (one per INFO message) not supported on Redshift tables.;
- edit-- @halil这里是用于减去时间戳的行。我所做的只是减去前一个时间戳:
select (extract(hour from timestamp) || ':' || extract(minute from timestamp) || ':' || extract(second from timestamp)) as my_time from tableA
答案 0 :(得分:0)
我检查了redshift文档,找不到合适的功能来执行此操作。 但是您可以使用此查询来获得您想要的内容
select date_part(h, your_tm)||':'||date_part(min, your_tm)||':'||date_part(sec, your_tm) from your_table