Jon*_*ran 7 datetime date amazon-redshift
我在通过复制命令将 S3 存储桶中的 json 文件(日期字段)加载到 Redshift 时遇到问题。有问题的三列看起来像这样......
{
...
"date":20201209,
"dateChecked": "2020-12-09T24:00:00Z",
"lastModified": "2020-12-09T24:00:00Z",
...
}
Run Code Online (Sandbox Code Playgroud)
DDL 看起来像...
create table table1 (
...,
date date,
dateChecked timestamptz,
lastModified timestamptz,
...
);
Run Code Online (Sandbox Code Playgroud)
复制命令是...
COPY {schema}.{table}
FROM 's3://{s3_bucket}/{s3_prefix}'
with credentials
'aws_access_key_id={access_key};aws_secret_access_key={secret_key}'
DATEFORMAT 'YYYYMMDD'
TIMEFORMAT 'YYYY-MM-DDTHH24:MM:SSZ'
JSON 'auto ignorecase';
Run Code Online (Sandbox Code Playgroud)
我的理解是,DATEFORMAT会解析date列并TIMEFORMAT处理timestamptz列。我只在列上收到错误timestamptz,特别是“无效的时间戳格式或值 [YYYY-MM-DDTHH24:MI:SSZ]”。
现在我还尝试将dateChecked和lastModified列定义为日期,并在复制语句中使用 DATEFORMAT 'YYYY-MM-DD' 而无需TIMEFORMAT. 这适用于这两列,但“日期”列为空。
我还尝试了ACCEPTANYDATE, DATEFORMAT 'auto',TIMEFORMAT 'auto'命令的每种组合,它为所有三列返回 null。
我的问题是如何加载不同日期/时间格式的数据?
任何帮助将不胜感激。谢谢。
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |