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 )
mysql转DM的日期函数转换的更多相关文章
- GROUP BY和HAVING 以及mysql中常用的日期函数
一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS ` ...
- mysql 中时间和日期函数应用
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...
- mysql 中 时间和日期函数
From: http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html 一.MySQL 获得当前日期时间 函数 1.1 获得当前日 ...
- (2.17)Mysql之SQL基础——日期函数
关键词:mysql时间函数,mysql日期函数 [1]curdate():返回当前日期(2019-03-06),curdate()+0 返回(20190306) [2]curtime():返回当前时间 ...
- mysql 常用的时间日期函数小结
本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now() :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...
- mysql查询时间戳和日期的转换
mysql提供了两个函数: from_unixtime(time_stamp) -> 将时间戳转换为日期 unix_timestamp(date) -> 将指定的日期或者日期字符串转换为时 ...
- MYSQL常用的时间日期函数
#时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...
- SQL 日期函数转换
1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...
- oracle日期函数转换真麻烦。。。
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2011 ...
- mysql 时间格式与日期格式转换,去除datetime中的具体时间
DATE_FORMAT(`addtime`,'%Y-%m-%d') 时间格式转成字符串 time_format('1924-01-02', '%Y-%m-%d') 字符串转成时间格式 CONVERT ...
随机推荐
- Nmap脚本
Nmap的脚本默认存放在Nmap的安装路径的scripts文件夹下Nmap的脚本主要分为以下几类 Auth:负责处理鉴权证书(绕过鉴权)的脚本 Broadcast:在局域网内探查更多服务的开启情况,如 ...
- html排版,样式
<style> .box{ width: 600px; height: 800px; backgro ...
- LeetCode HOT 100:子集(简单易懂的回溯)
题目:78. 子集 题目描述: 给你一个整数数组,数组中元素互不相同.返回数组中所有可能的子集,且子集不能重复! 什么是子集?举个例子:原数组[1, 2, 3],[].[1].[1, 2].[1, 3 ...
- 快速排序算法实现 (y总课后)
主要思路: 1.确定 边界 l----------r (left right) 2.确定中间值 l--------x----------r 3.优雅快排: 设置两个指针i,j. i从左边开始运行 ...
- 【转载】EXCEL VBA 关于范围选择代码集
Range("A1:B2").Select '选中"A1"."A2"."B1"."B2"四个连续的单 ...
- day06-Vue03
Vue03 10.组件化编程 10.1基本说明 官网链接:https://v2.cn.vuejs.org/v2/guide/components-registration.html 在大型应用开发时, ...
- 洛谷P1259 黑白棋子的移动 题解
本蒟蒻这题用的打表做法,其实也可以理解为是一种递推. 先来观察一下样例: 当n为7时,输出共有14行,易得输出行数为2n. ooooooo*******-- oooooo--******o* oooo ...
- 【高并发】AQS中的CountDownLatch、Semaphore与CyclicBarrier用法总结
CountDownLatch 概述 同步辅助类,通过它可以阻塞当前线程.也就是说,能够实现一个线程或者多个线程一直等待,直到其他线程执行的操作完成.使用一个给定的计数器进行初始化,该计数器的操作是原子 ...
- 基于NOSTR协议的“公有制”版本的Twitter,去中心化社交软件Damus用后感,一个极端走向另一个极端
最近,一个幽灵,Web3的幽灵,在网络游荡,它叫Damus,这玩意诠释了什么叫做病毒式营销,滑稽的是,一个Web3产品却在Web2的产品链上疯狂传销,各方大佬纷纷为其背书,到底发生了什么?Damus的 ...
- 用GPU来运行Python代码
简介 前几天捣鼓了一下Ubuntu,正是想用一下我旧电脑上的N卡,可以用GPU来跑代码,体验一下多核的快乐. 还好我这破电脑也是支持Cuda的: $ sudo lshw -C display *-di ...