如何在Amazon Redshift中将字符串格式时间转换为Timestamp?
在Amazon Redshift中将字符串时间戳转换为Timestamp格式
Redshift可以通过TO_TIMESTAMP函数直接处理这种连写格式的字符串时间戳,你的字符串属于YYYYMMDDHH24MISS(年-月-日-时-分-秒连续拼接)格式,对应格式模型为'YYYYMMDDHH24MISS',具体操作如下:
1. 查询时临时转换
如果仅需要在查询结果中得到标准Timestamp格式,执行以下SQL即可:
SELECT TO_TIMESTAMP('20220725115427', 'YYYYMMDDHH24MISS') AS converted_timestamp;
执行后会返回标准格式的时间戳:2022-07-25 11:54:27
2. 永久修改表结构
如果要将表中存储的字符串列替换为Timestamp类型,按以下步骤操作:
- 给目标表添加一个新的Timestamp类型列:
ALTER TABLE your_marketing_table ADD COLUMN standardized_timestamp TIMESTAMP;
- 将原字符串列的数据转换后写入新列:
UPDATE your_marketing_table SET standardized_timestamp = TO_TIMESTAMP(your_string_timestamp_col, 'YYYYMMDDHH24MISS');
- (可选)若无需保留原字符串列,可删除旧列并重命名新列:
ALTER TABLE your_marketing_table DROP COLUMN your_string_timestamp_col; ALTER TABLE your_marketing_table RENAME COLUMN standardized_timestamp TO your_string_timestamp_col;
处理无效数据
如果字符串列存在格式错误的无效值,TO_TIMESTAMP会直接报错,此时可以用TRY_TO_TIMESTAMP函数替代,它会返回NULL而非抛出错误:
SELECT TRY_TO_TIMESTAMP('invalid_timestamp_string', 'YYYYMMDDHH24MISS') AS converted_timestamp;
内容的提问来源于stack exchange,提问作者Mohit Jain
相关产品推荐
相关产品推荐

