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

dataworks这个函数有bug吗?

dataworks这个函数有bug?image.png

展开
收起
真的很搞笑 2024-01-07 16:58:15 36 0
2 条回答
写回答
取消 提交回答
  • 这个函数的bug可能是日期格式字符串写错了,应该是'YYYYMMdd'而不是'reate_time'。正确的函数应该是:

    SELECT DATE_FORMAT(create_time, 'YYYYMMdd'), create_time;
    
    2024-01-09 11:02:21
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    首先,让我们分析一下SQL语句含义:

    SELECT DATE_FORMAT(create_time,'YYYYMdd'), create_time FROM tem_ods_ord_order_info_i WHERE date(create_time)= '20231231' AND DATE_FORMAT(create_time ,'YYYYMdd') = '20231231'
    

    这条 SQL 的目的是获取日期为 '20231231' 的记录,并按照创建时间降序排列。其中,DATE_FORMAT() 函数用于转换日期字符串的格式,将其转化为 'YYYYMMDD' 格式的日期。

    然而,当我们在查询条件中加入 WHERE DATE_FORMAT(create_time , 'YYYYMdd')='20231231' 后,实际上我们只选择了那些原始日期也是 '20231231' 的记录。这就意味着,如果我们有一个日期不是 '20231231' 的记录,即使其创建时间为 '20231231',也会因为不符合筛选条件而不会出现在最终返回的结果集中。

    所以,这种情况下,DATE_FORMAT() 函数并没有 bug 或者语法错误,只是功能上与预期不符。如果你想得到所有在指定日期创建的所有订单,你需要去掉这部分过滤条件,直接用 date=create_time 来匹配日期。

    2024-01-07 17:02:46
    赞同 展开评论 打赏

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

相关产品

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

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载