当前位置: 首页 > 知识库问答 >
问题:

红移复制命令中的时间戳格式无效

祝俊
2023-03-14

我尝试了几乎所有的解决方案,但仍然是同一个问题。我在S3中有一个CSV文件,在红移中有一个表。

表结构如下:

like_id => inetger
p_id => integer
c_id => integer
date_added => timestamp (without time zone)

CSV文件包含以下数据

1|1234|9876|2012-08-12 03:30:00
...
...
1500|4545|87545|2019-01-15 08:10:00

当我在RedShift中运行COPY commnad时,它给出了一个错误,时间戳格式或值[YYYY-MM-DD HH:MI:SS],我几乎尝试了RedShift中的所有时间日期格式,但仍然卡住了。复制命令如下:

copy likes from 's3://<myBucketPath>/like.csv'
credentials 'aws_iam_role=<IAM-Role-Here>'
delimiter '|' region 'us-west-2'
timeformat 'YYYY-MM-DD HH:MI:SS';
//timeformat 'MM/DD/YYYY HH:MI:SS'
//dateformat as 'auto'
//timeformat as 'auto'

注意:我以CSV格式从MySQL导出了我的表,并且添加了date\u列的数据类型是datetime


共有1个答案

柴泰平
2023-03-14

为了重现你的情况,我做了以下操作:

  • 创建了包含以下内容的CSV文件:
1|1234|9876|2012-08-12 03:30:00
1500|4545|87545|2019-01-15 08:10:00
  • 启动了Amazon Redshift集群并创建了一个表:
CREATE TABLE foo (like_id INT, p_id INT, c_id INT, date_added TIMESTAMP WITHOUT TIME ZONE)
  • 使用以下命令将Amazon S3中的数据加载到红移中:
COPY foo
FROM 's3://my-bucket/bar/'
IAM_ROLE 'arn:aws:iam::111111111111:role/my-role'
  • 选择数据:
SELECT * FROM foo

结果是:

1     1234   9876  2012-08-12 03:30:00
1500  4545  87545  2019-01-15 08:10:00

因此,它似乎在默认情况下加载了它,而不需要任何特定设置。

我知道这是一个没有TIMEZONE的TIMESTAMP,因为我可以这样做:

SELECT date_added + INTERVAL '15 minutes' FROM foo

2012-08-12 03:45:00
2019-01-15 08:25:00
 类似资料:
  • 我试图使用COPY命令将一些数据移到redshift中,但是它不喜欢时间戳值的格式。在数据集中,它被格式化为mm/dd/yyyy hh24:mi 然而,它也出现了错误代码1206的cack。 有人知道如何修复它将接受数据中已经设置的时间戳格式的位置吗?

  • 我正试图使用copy命令将avro文件复制到红移。该文件具有以下类型的列: {'name':'timestamp','type':['null',{'logic type':'timestamp-millis','type':'long'}]}], 原始字段值:1581306474335 无效的时间戳格式或值[YYYY-MM-DD hh24:mi:ssof] 但是,如果我添加以下一行,它就可以工作

  • 我在红移中创建了一个表: 但是,我希望包含额外的3秒,例如:。 我需要如何修改我的时间戳字段,以便以秒为单位插入它的额外精度?

  • 本文向大家介绍php格式化时间戳,包括了php格式化时间戳的使用技巧和注意事项,需要的朋友参考一下 CMS中一般显示时间比较新的文章需要显示几分钟前,几天前这样,但是一般数据库里面记录的都是时间戳(至少我习惯这样),所以就需要一个转化的过程,根据网上的资料加上自己的修改整理封装了两段代码 下面是封装好的方法 或者 更详细的 再分享一个类似的

  • 我在redshift表中有一个varchar列,其中时间以24小时格式存储,例如,我想查询该表并将格式转换为12小时格式,显示时间为上午或下午。当我测试like时,它工作得很好,但是当我用列名代替查询表的硬编码值时, 它不会工作,给出一个错误

  • 我知道有人问过这个问题,但没有提供解决方案。Python UTC日期时间对象的ISO格式不包括Z(Zulu或零偏移) 我正在寻找一种在Python中用这种格式生成UTC时间戳的干净方法。我需要的格式是。 具体来说,我需要在最后加上“Z”。Python的不会在末尾附加Z。 请注意,手动添加“Z”不是我可以接受的解决方案。我正在寻找一个干净的方法来做到这一点。 以ISO格式生成带后缀的UTC时间戳的干