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

ODPS函数问题

问题描述

select sswg,count(1) as ct from hs_key_personnel where  delete_flag=1
   and timestampdiff(DAY,add_days(to_date(date_format(last_sample_time,'yyyy-MM-dd'),'yyyy-MM-dd'),
            cs),now())


 
DATEDIFF(DAY,DATEADD(SQL_TSI_DAY, cs, LAST_NUCLEIN_TIME),CURDATE())>0)



请各位牛人帮我把这两条sql转换为可以在odps中可以运行的sql,感谢

期望结果

...

已尝试的方法

  1. SELECT  DATEDIFF((SUBSTR(GETDATE(),9,2)),DATE_ADD(TO_DATE(DATE_FORMAT(last_sample_time,'yyyy-MM-dd'),'yyyy-MM-dd'),7),GETDATE()) FROM DWD_AWJD_YQFK_hs_key_personnel  WHERE start_date = '20221107'; 报错,说格式不对
  2. select count(1as ct from hs_key_personnel where delete_flag = 1 and  (DATEDIFF(DAY,DATEADD(SQL_TSI_DAY, cs, LAST_NUCLEIN_TIME),CURDATE())>0) ;  数对不上

展开
收起
游客yznlxmuxi6dik 2022-11-10 16:08:52 102 0
1 条回答
写回答
取消 提交回答
  • 主要就是后面做datediff那边的语法不对吧,MaxCompute里面datediff的语法可以参考文档:datediff

    从上面的示例来看,基本上的框架应该是:

    datediff(timestamp current_timestamp(),timestamp dateadd(),-day )

    • current_timestamp():表示返回当前时间,命令详情
    • dateadd():表示给某个日期加一段时间,命令详情

    这个框架返回的就会是current_timestamp()-dateadd()的结果

    从上面也看不出来你要的实际效果是什么,MaxCompute的全部日期函数可以参考日期函数的文档,所有日期相关的函数都在这里了

    2022-11-10 17:14:42
    赞同 展开评论 打赏

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

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载