在红移中将 MM/DD/YYYY 转换为 YYYYMMDD

Posted

技术标签:

【中文标题】在红移中将 MM/DD/YYYY 转换为 YYYYMMDD【英文标题】:convert MM/DD/YYYY to YYYYMMDD in redshift 【发布时间】:2017-07-17 16:49:17 【问题描述】:

我需要在亚马逊红移数据库中将 MM/DD/YYYY 转换为 YYYYMMDD。

这个查询的结果给了我一些奇怪的结果。谁能帮帮我。

选择 to_date ('07/17/2017','YYYYMMDD');

0007-07-20

【问题讨论】:

【参考方案1】:

如果您只想将硬编码字符串转换为DATE

select to_date('07/17/2017', 'MM/DD/YYYY')

如果您的列已格式化为DATE,则使用:

to_char(fieldname, 'YYYYMMDD')

结合两个概念:

select to_char(to_date('07/17/2017', 'MM/DD/YYYY'), 'YYYYMMDD')

【讨论】:

【参考方案2】:

TO_DATE - 将字符串中表示的日期转换为 DATE 数据类型。 TO_CHAR - 将时间戳或数值表达式转换为字符串数据格式。

select to_char(sysdate,'YYYYMMDD');

如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

【讨论】:

但这不适用于仅存储时间的列,例如选择 to_char('17:00'::time,'HH12:MI AM'),硬编码有效但当列代替 17:00,它没有。

以上是关于在红移中将 MM/DD/YYYY 转换为 YYYYMMDD的主要内容,如果未能解决你的问题,请参考以下文章