【问题标题】:Convert date to other format other than YYYY-MM-DD将日期转换为 YYYY-MM-DD 以外的其他格式
【发布时间】:2020-08-06 19:51:56
【问题描述】:

我需要转换格式为 YYYY-MM-DD 的输入日期。首先,我通过以下方式将其转换为 char:

TO_CHAR(,'YY/MM/DD')

然后尝试将其转换为这种格式的日期:

to_date((TO_CHAR(,'YY/MM/DD')),'YY/MM/DD')

至于 to_date 始终转换为 YYYY-MM-DD 的默认日期类型。我可以使用什么其他方式将其转换为其他格式。我正在使用 Informatica Powercenter,所以找不到 TO_DATE 以外的其他功能。

【问题讨论】:

  • 日期“格式”仅适用于与字符串之间的转换。但是对于 DATE 数据类型,内部二进制形式是不可见的,而相应的“人类可读”显示值将由客户端确定。

标签: teradata informatica-powercenter to-date


【解决方案1】:

我认为我们忽略了基础知识 - to_date() 转换为日期格式。现在它可以显示在 dd/mm/yyyy 中,具体取决于您的数据库客户端中的设置,或者您是否正在转储文件,可能是 YYYY-MM-DD。在提交的日期,您可以使用 TO_CHAR 将其转换为任何格式。
因此,如果您的输入是字符串并且在 'YY/MM/DD' 中,则使用 TO_CHAR(TO_DATE(imp_yymmdd,'YY/MM/DD'),'DD/MM/YYYY') - 输出将是您所需格式的字符串,即 DD/MM/YYYY。
如果您的输入是日期,则使用TO_CHAR(imp_date,'DD/MM/YYYY') - 输出将是您所需格式的字符串。

【讨论】:

  • 您好,谢谢您的建议,输入是日期格式,我转换成我想要的格式的字符,到那时就可以了。但是在目标表中,列类型是日期,所以我需要转换回日期,当我使用 TO_DATE( ) 它返回默认格式 YYYY-MM-DD 而不是 YY/MM/DD(必需)跨度>
  • 那么,问题解决了吗?我总是喜欢传递格式。因为你永远不知道你会收到什么样的数据。
【解决方案2】:

Date 数据类型没有格式。您可以格式化表示日期的字符串。

假设您的输入是date,只需使用TO_CHAR(yourdate, 'desiredformat')

如果您的输入是string,您首先需要将其转换为date,然后再次转换回string,并应用所需的格式。所以:

TO_CHAR(TO_DATE(yourstring, "format-it-comes-in"), "desired-format")

在你的情况下是:

TO_CHAR(TO_DATE(yourstring, "YYYY-MM-DD"), "YY/MM/DD")

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多