对比
一览表
功能 | mysql | oracle |
---|---|---|
条件判断 | 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 |
---|---|
不等于 | <> , != |