背景:

   项目要从mysql转换为DM数据库,发现很多日期函数在DM是不能用的. 所以大概总结下有哪些,以及转换思路.

正文:

   INTERVAL 表示日期间隔. 看做拼接符.

   DATE_ADD 表示日期相加运算.

  timestampdiff(unit,begin,end) 计算差值,unit是差值的单位

  date_sub(date,interval expr type),函数从日期减去指定的时间间隔.

    注意: 这个比较特殊 . select date_sub(CURRENT_TIMESTAMP(),interval - 4 day)  表示当前时间的4天后

转换demo

  1. DAY ( #{startDay} )  转换为: DATE_FORMAT(#{startDay},'%d')

  2. DAY(last_day( #{startDay} ) )  转换为: DATE_FORMAT(last_day( #{startDay} ),'%d')

  3. (SELECT DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ id DAY ) AS dt
    转换为:
    select to_char( CURRENT_Date - DATE_FORMAT(CURRENT_Date,'%d') + 1 ,'yyyy-mm-dd')

  4. DATE_SUB日期间隔相反. +4 表示当前日期的前面4天. -4表示当前日期往后推迟4天

    select DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL + 1 DAY)
    转换为:
    select CURRENT_TIMESTAMP() - 1

  5. DATE_ADD( #{startDay}, INTERVAL + id - DAY ( #{startDay} ) DAY ) AS dt

    分步解释:

    转换为 内部日期相加.
    1. #{startDay}字符串转date
      to_date(#{startDay},'yyyy-mm-dd')
    2. DAY ( #{startDay} ) 转天数
      DATE_FORMAT(#{startDay},'%d')
    3. to_char拼接起来
      to_char( to_date(#{startDay},'yyyy-mm-dd') + id - DATE_FORMAT(#{startDay},'%d') , 'yyyy-mm-dd' )

    ps:这里date_add加最好只用to_char来转,我试了to_date是报错的.

  6. TIMESTAMPDIFF( DAY, CURRENT_DATE, b.bj_end_time )  这里DM也是支持day,hour这种作为单位的.

    转换为:

            select TIMESTAMPDIFF(DAY,CURRENT_Date,CURRENT_Date) 

  7. if函数出现问题.

    DM是支持select IF( 1==1, 2, 0) 这种写法的.

    但是不支持 类型为null或者date类型的.

  8. DateDiff

    这个和TIMESTAMPDIFF用法类似.

    代码里面是: DATEDIFF( CURRENT_TIMESTAMP, a.deadline )

    改造后是: DATEDIFF( DAY,CURRENT_TIMESTAMP, a.deadline )

    

mysql转DM的日期函数转换的更多相关文章

  1. GROUP BY和HAVING 以及mysql中常用的日期函数

    一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS ` ...

  2. mysql 中时间和日期函数应用

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...

  3. mysql 中 时间和日期函数

    From: http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html 一.MySQL 获得当前日期时间 函数 1.1 获得当前日 ...

  4. (2.17)Mysql之SQL基础——日期函数

    关键词:mysql时间函数,mysql日期函数 [1]curdate():返回当前日期(2019-03-06),curdate()+0 返回(20190306) [2]curtime():返回当前时间 ...

  5. mysql 常用的时间日期函数小结

    本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now()  :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...

  6. mysql查询时间戳和日期的转换

    mysql提供了两个函数: from_unixtime(time_stamp) -> 将时间戳转换为日期 unix_timestamp(date) -> 将指定的日期或者日期字符串转换为时 ...

  7. MYSQL常用的时间日期函数

    #时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...

  8. SQL 日期函数转换

    1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...

  9. oracle日期函数转换真麻烦。。。

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  10. mysql 时间格式与日期格式转换,去除datetime中的具体时间

    DATE_FORMAT(`addtime`,'%Y-%m-%d')  时间格式转成字符串 time_format('1924-01-02', '%Y-%m-%d') 字符串转成时间格式 CONVERT ...

随机推荐

  1. vue-router路由之路-极简教程

    01.什么是前端路由? 前端路由的一个大背景就是当下流行的单页应用SPA,一些主流的前端框架,如vue.react.angular都属于SPA,那什么是SPA呢? 1.1.SPA SPA(single ...

  2. pymysql.err.ProgrammingError: (1146, "Table 'autoplatform.webcasestepinfo' doesn't exist"

    在使用jmeter调试接口时,提示pymysql.err.ProgrammingError: (1146, "Table 'autoplatform.webcasestepinfo' doe ...

  3. 认识一下 Mobx

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序(掘金) 前言 在之前的文章中,我们讲述了 React ...

  4. ArcObjects SDK开发 025 AO中对象的序列化和反序列化

    在ArcObjects SDK,序列化接口是IPersistStream,该接口的定义如下. 其中GetClassID函数可以获取实际类型的唯一ID,Load函数是反序列化函数,Save函数为序列化函 ...

  5. JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

    大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 上一篇文章中,我们知晓了如何在项目中通 ...

  6. ONNX模型分析与使用

    本文大部分内容为对 ONNX 官方资料的总结和翻译,部分知识点参考网上质量高的博客. 一,ONNX 概述 深度学习算法大多通过计算数据流图来完成神经网络的深度学习过程. 一些框架(例如CNTK,Caf ...

  7. (7)go-micro微服务zap日志配置

    目录 一 Zap日志介绍 二 Zap日志安装 三 Zap日志初始化 四 Zap日志重写方法 五 Zap日志使用 六 最后 一 Zap日志介绍 Zap是在 Go 中实现超快.结构化.分级的日志记录. Z ...

  8. 使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决

    使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决   摘要:我昨天花了一天时间学习了SSM项目搭建,却在最终的编码问题上拉胯了,在使用Spring MVC框架进行前 ...

  9. 使用IIS配置代理,转发POST和GET访问,配置IIS接口转发失效问题处理

    先说一下可能引发配置失败的原因:大概率是你的Application Request Routing没有配置好,或者你的正则表达没有搞好,往下看步骤自己对照哇~ 1.确保服务器已经安装IIS 2.下载U ...

  10. 代码小DEMO随笔---JS原生手机版本alert弹框

    之前的随笔写的是WEB版本的弹框,这次是手机版本,欢迎路过的大佬们提出更好的写法~~ <!DOCTYPE html> <html lang="en"> &l ...