【问题标题】:Teradata : Extract Date from stringTeradata:从字符串中提取日期
【发布时间】:2022-05-13 19:14:35
【问题描述】:

有一个具有不同字符数的符号字段。例如

Exceed Limit Fee 26-January-2020

或者

Account Exceed Limit Fee 05-June-2001

我想提取其中的日期部分并将其转换为日期类型。之后将其与其他表的日期字段进行比较。

我怎样才能在 Teradata 中实现这一目标?

【问题讨论】:

  • 日期格式是否固定:两位数的日期、完整的月份和四位数的年份?总是在字符串的末尾?
  • @dnoeth 是的,日期在字符串末尾采用相同格式的两位数日期 - 完整月份 - 四位数年份

标签: sql teradata teradata-sql-assistant teradatasql


【解决方案1】:

您可以使用 RegEx 提取日期,然后转换为日期:

to_date(regexp_substr(x, 'd{1,2}-w{3,9}-d{4}'), 'dd-month-yyyy')

这是基本的正则表达式检查两位数的日期、字符串和 - 位数的年份。您可以增强它以匹配正确的月份名称、“January”等,只需搜索 PCRE2 兼容的 RegEx。

【讨论】:

  • 谢谢@dnoeth 抽出时间。这有效?
猜你喜欢
  • 1970-01-01
  • 2011-02-17
  • 2020-08-14
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多