mysql转DM的日期函数转换
背景:
项目要从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 )
最新文章
- 1323 union解题报告
- Win7安装Redis
- 使用Apache Archiva搭建Maven Repository Server
- Java编程思想读书笔记之内部类
- jQuery的jsonp跨域是这么回事.
- android 操作sqlite的一点小技巧
- 关于Raw,Assets的使用
- How to using to code import to GL journal[AX2012]
- skyline TerraExplorer fly设置相对路径的方法
- python del函数
- 文件头 MAGE_FILE_HEADER
- Swagger 生成 ASP.NET Web API
- centos单用户模式:修改ROOT密码和grub加密
- SDCard助手类
- shell编程之数组
- hdu4932 Miaomiao&;#39;s Geometry (BestCoder Round #4 枚举)
- 第10章 统计和查看Linux的系统状态
- FastJson一些常见方法(API):处理JSON变得好简单
- 说 AppbarLayout,如何理解可折叠 Toolbar 的定制
- Python巧用正则表达式,完成接口参数替换
热门文章
- js将数组内属性值相同的项合并成二维数组
- python与数值计算环境安装
- [python] 基于paramiko库操作远程服务器
- npm ERR! An unknown git error occurred
- python之路35 MySQL 3 字段的约束条件 外键关系
- JavaScript 浅拷贝和深拷贝
- Git【初次提交内容(代码)到新创建的远端仓库】
- 【OpenWRT】增加第三方开源库 - 二维码开源库 zbar
- 12月22日内容总结——django中间件的三个了解要求的方法、基于django中间件的功能设计、cookie与session
- JSP第二次作业