mysql与oracle互转【数据库条件判断+数据库日期+数据库字符串拼接+数据库获取星期】

对比

一览表
功能mysqloracle
条件判断if(expr1,expr2,expr3)case when then else end
日期增减date_add()add_months()
日期格式date_format()to_date()to_char()
字符串拼接concat(str1,str2)str1||str2
注释#--
1.条件判断

mysql IF
oracle CASE WHEN

#公式
IF(判断条件,结果为真执行,结果为假执行)
#示例
IF(player_id= '呼呼啊噜噜','天选之子',player_id)
#如果玩家id是'呼呼啊噜噜'赋值'天选之子'否则不变
--公式
CASE 字段 
WHEN 条件1 THEN 结果为真执行,否则进入后续判断
WHEN 条件2 THEN 不满足条件1满足条件2执行
ELSE 条件1,2均不满足执行 
END
[AS 字段]--可以生成新列或者修改原字段
--示例
CASE player_id 
WHEN '呼呼啊噜噜' THEN '天选之子'--如果
WHEN '呼呼啊噜噜de对象' THEN '天选之子de对象'
ELSE player_id END
[AS player_type]
2.日期增减

mysql DATE_ADD; DATE_SUB
oracle ADD_MONTHS

#公式
NOW()#获取现在时间
DATE_SUB(要操作的日期,INTERVAL 数字n DAY)#往前n天
DATE_ADD(要操作的日期,INTERVAL -数字n MONTH)#ADD往前n个月注意负号
#示例
CALMONTH > DATE_ADD(DATE_SUB(NOW(), INTERVAL 1 DAY),INTERVAL -2 MONTH)#最近两个月(实际环境当天未完结数据通常不算在运算范围内)
--公式
SYSDATE--获取当前日期可以直接加减对应天数
ADD_MONTHS(要操作的日期,要添加的月份n)--如果多少年*12填对应月份即可(往前记得用负号)
--示例
SYSDATE-2--前天
SYSDATE+1--明天
CALMONTH > ADD_MONTHS((SYSDATE-1),-24)--近两年
3.日期格式

mysql DATE_FORMAT
oracle TO_CHAR;TO_DATE

#公式
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y%m')
DATE_FORMAT(要操作的日期,'%Y%m')#日期转换成YYYYMM字符串的格式('%y%m'小y表示YYMM格式)
#示例
DATE_FORMAT(NOW(),'%Y%m')#'202003'
--公式
TO_CHAR(日期,'YYYYMM')--日期转字符串
TO_DATE(字符串,'YYYYMM')
--示例
TO_CHAR(SYSDATE,'yyyy"年"MM"月"')-->'2020年03月'
TO_DATE(TO_CHAR(SYSDATE,'yyyy"年"MM"月"'),'yyyy"年"MM"月"')
4.字符串拼接

mysql CONCAT
oracle ||

#公式
CONCAT(要拼接的字符串1,要拼接的字符串2,要拼接的字符串3)
#示例
CONCAT(SUBSTR(CALDAY,5,2),'年',SUBSTR(CALDAY,7,2),'月') as 日期
--公式
要拼接的字符串1||要拼接的字符串2||要拼接的字符串3
--示例
SUBSTR(CALDAY,5,2)||'年'||SUBSTR(CALDAY,7,2)||'月' as 日期
5.获取星期

mysql DATE_FORMAT(日期字符串,’%w’)
oracle TO_NUMBER(日期字符串,‘d’)

#公式
STR_TO_DATE(日期,'字符串格式')
DATE_FORMAT(字符串日期,'%W')#获取星期
#示例
CASE DATE_FORMAT(STR_TO_DATE(CALDAY,'%Y%m%d'),'%w') 
	WHEN 1 THEN '一'
	WHEN 2 THEN '二'
	WHEN 3 THEN '三'
	WHEN 4 THEN '四'
	WHEN 5 THEN '五'
	WHEN 6 THEN '六'
	WHEN 0 THEN '日'
END as WEEK_CN
--公式
TO_DATE(日期,'字符串格式')--获取字符串日期
TO_NUMBER('字符串日期','d')--获取星期
--示例
CASE TO_NUMBER(TO_CHAR(TO_DATE(CALDAY,'yyyymmdd'),'d')) 
	WHEN 2 THEN '一'
	WHEN 3 THEN '二'
	WHEN 4 THEN '三'
	WHEN 5 THEN '四'
	WHEN 6 THEN '五'
	WHEN 7 THEN '六'
	WHEN 1 THEN '日'
END as WEEK_CN

相同

功能mysql & oracle
不等于<> , !=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值