开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks中MC里 日期字符串 这样的字符串 有么用好的方式?

DataWorks中MC里 日期字符串 '7/31/2022', '6/1/2022' 这样的字符串转换成 '2022-07-31', '2022-06-01',有么用好的方式?

SELECT TO_DATE('7/31/2022', 'MM/DD/YYYY'); 在普通DB里,这样是可以的,无论07还是7都是可以的。

但是在Dataworks & MaxCompute里是错误的

in function to_date, format string does not match datetime string, datetime string value is '7/31/2022' and format string is 'MM/DD/YYYY'

展开
收起
真的很搞笑 2023-05-28 18:18:00 106 0
2 条回答
写回答
取消 提交回答
  • 在DataWorks和MaxCompute中,您可以使用字符串函数STR_TO_DATE来将日期字符串转换为DATETIME类型。函数STR_TO_DATE接受两个参数:日期字符串和日期格式字符串。

    例如,对于日期字符串 '7/31/2022',可以使用以下语句将其转换为 '2022-07-31' 的日期格式:

    SELECT STR_TO_DATE('7/31/2022', '%m/%d/%Y') 同样地,对于日期字符串 '6/1/2022',可以使用以下语句将其转换为 '2022-06-01' 的日期格式:

    SELECT STR_TO_DATE('6/1/2022', '%m/%d/%Y') 请注意,STR_TO_DATE函数中的日期格式字符串必须与日期字符串的格式相匹配,否则函数将无法正确地解析日期字符串。

    2023-05-29 21:08:14
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 DataWorks 中,可以使用 regexp_replace 函数将日期字符串中的斜杠替换成连接符,然后再使用 to_date 函数将字符串转换为日期格式。具体的方法如下:

    scheme Copy SELECT TO_DATE(regexp_replace('7/31/2022', '/', '-'), 'yyyy-MM-dd'); 这个示例中,我们首先使用 regexp_replace 函数将日期字符串中的斜杠替换成连接符 -,得到 7-31-2022 的格式。然后再使用 to_date 函数将字符串转换为日期格式,指定日期格式为 yyyy-MM-dd,得到 2022-07-31 的日期值。

    如果需要对多个日期字符串进行转换,可以使用类似的方法,将多个字符串分别进行转换,生成对应的日期值。需要注意的是,如果日期字符串的格式不一致,需要针对不同的格式分别进行转换。

    2023-05-29 18:51:28
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    被窝里的运维——DataWorks移动版公测-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载