使用 To_Date() 函数将字符串转换为日期格式

问题描述 投票:0回答:1

我在表中有日期列,其数据类型是字符串。尝试使用 IICS 中的函数 to_date() 使用表达式转换将其转换为日期数据类型。值为,

  1. 2023 年 1 月 5 日
  2. 2023 年 2 月 2 日
  3. 2023年11月25日
  4. 2023 年 3 月 4 日
  5. 2023年12月12日
  6. 2023 年 11 月 14 日
  7. 2023 年 9 月 5 日

其中第 1、2、4、7 个值已转换,其余值不转换。它会抛出 TT_11132 转换错误。我收到的错误消息是

错误消息为 [<> [TO_DATE]:无效字符串 用于转换为日期... t:TO_DATE(u:TO_CHAR(t:TO_DATE(u:'1/1/20',u:'dd/mm/yyyy'),u:'dd/mm/yyyy'),u:'MM/DD /YYYY HH24:MI:SS.US')]

。伙计们需要你的帮助。

数据库中加载的值也不正确,它被加载为,

  1. 1/5/23
  2. 2/2/23
  3. 3/4/23
  4. 9/5/23

尝试使用 IICS 中的函数 to_date() 使用表达式转换将字符串转换为日期数据类型。

sql oracle date-formatting iics
1个回答
0
投票

您的错误消息指出您正在使用的代码是:

t:TO_DATE(
  u:TO_CHAR(
    t:TO_DATE(
      u:'1/1/20',
      u:'dd/mm/yyyy'
    ),
    u:'dd/mm/yyyy'
  ),
  u:'MM/DD/YYYY HH24:MI:SS.US'
)

不要将值从字符串转换为日期,然后再转换回字符串,然后再转换回日期。最后两个转换毫无意义,因为您已经拥有日期值。

特别是不要更改您正在使用的格式模型,以便将其转换为格式为

dd/mm/yyyy
的字符串,然后使用格式模型
MM/DD/YYYY HH24:MI:SS.US
返回为日期,因为该字符串不是该格式,而您是尝试将天读取为月,反之亦然(这就是导致您错误的原因)。

如果您想将日期转换为

dd/mm/yyyy
格式,则只需使用:

TO_DATE(your_column, 'dd/mm/yyyy')
© www.soinside.com 2019 - 2024. All rights reserved.