Oracle和Mysql之间转化

这篇博客详细介绍了Oracle数据库中的各种函数如何在MySQL中进行转换,包括当前时间获取、日期字符串转换、空值判断、数字转换、条件判断、时间计算和分组排序等操作。并补充了MySQL中获取当前周数、模拟ROW_NUMBER()功能、表别名使用、自增ID处理以及MERGE INTO语句的实现方法。
摘要由CSDN通过智能技术生成
简单函数之间的转换

快速查询:
  column表示字段名

函数作用 oracle mysql
日期转字符串 to_char date_format
字符串转日期 to_date str_to_date
判断空值 nvl IFNULL
转换数字 to_number cast
条件判断 decode case then或if else
时间串拼接 numtodsinterval contact
decimal的转换 to_char cast(column as char)
当前时间 sysdate now()
substring区别 开始位置可以为0 开始位置不能为0
时间的计算 可以直接相减,默认单位为秒 使用 TIMESTAMPDIFF,默认单位为毫秒
分组排序 row number over 使用变量来实现

简单函数示例
一、当前时间

oracle语句:

		select sysdate from dual

mysql语句:

		select now()
二、日期转字符串

oracle语句:

		select  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

mysql语句:

		select DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
三、字符串转日期

oracle语句:

		select to_date('2019-01-01 08:00:00', 'yyyy-mm-dd hh24:mi:ss') from dual

mysql语句:

		select STR_TO_DATE('2019-01-01 08:00:00',"%Y-%m-%d %H:%i:%s")
四、判断空值

oracle语句:

		NVL(a,b)

mysql语句:

		IFNULL(a,b)
五、转换数字

oracle语句:

		to_number(column)

mysql语句:

	转换成整形:
		cast(column as unsigned int)
	转换成浮点型:
		cast(column as decimal(10,2))
六、条件判断

oracle语句:

		select decode(mod(quantity,7),0,'A',1,'B','C') as qtype from biz_order

mysql语句:

	使用case whenSelect case mod(quantity,7) when 0 then 'A'
		 	when 1 then 'B'
			else 'C'
			end as qtype
		from biz_order

	使用if else:
		不推荐使用if-else,因为我写不出来,建议使用case when,咳咳咳咳咳-----,
七、时间串拼接,numtodsinterval

oracle语句:

		select a.*,
    		case when length(
			ltrim(substr(numtodsinterval(ceil(a.reportperiod), 'second'),2,15),'0')
			) = 6
   		then '0天' || substr(numtodsinterval(ceil(a.reportperiod), 'second'),12,8)
   		when a.reportperiod is null
    	   then ''
   		else ltrim(substr(numtodsinterval(ceil(a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值