背景:

   项目要从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 )

    

最新文章

  1. 1323 union解题报告
  2. Win7安装Redis
  3. 使用Apache Archiva搭建Maven Repository Server
  4. Java编程思想读书笔记之内部类
  5. jQuery的jsonp跨域是这么回事.
  6. android 操作sqlite的一点小技巧
  7. 关于Raw,Assets的使用
  8. How to using to code import to GL journal[AX2012]
  9. skyline TerraExplorer fly设置相对路径的方法
  10. python del函数
  11. 文件头 MAGE_FILE_HEADER
  12. Swagger 生成 ASP.NET Web API
  13. centos单用户模式:修改ROOT密码和grub加密
  14. SDCard助手类
  15. shell编程之数组
  16. hdu4932 Miaomiao's Geometry (BestCoder Round #4 枚举)
  17. 第10章 统计和查看Linux的系统状态
  18. FastJson一些常见方法(API):处理JSON变得好简单
  19. 说 AppbarLayout,如何理解可折叠 Toolbar 的定制
  20. Python巧用正则表达式,完成接口参数替换

热门文章

  1. js将数组内属性值相同的项合并成二维数组
  2. python与数值计算环境安装
  3. [python] 基于paramiko库操作远程服务器
  4. npm ERR! An unknown git error occurred
  5. python之路35 MySQL 3 字段的约束条件 外键关系
  6. JavaScript 浅拷贝和深拷贝
  7. Git【初次提交内容(代码)到新创建的远端仓库】
  8. 【OpenWRT】增加第三方开源库 - 二维码开源库 zbar
  9. 12月22日内容总结——django中间件的三个了解要求的方法、基于django中间件的功能设计、cookie与session
  10. JSP第二次作业