1、decode;case when then else end
判断用
Oracle:
select distinct decode(u.c_sex,10007770,'男',10007780,'女','不明') from t_user u;
Mysql:
SELECT CASE when u.code_user = 1 then '男' WHEN u.code_user = 0 then '女' else '不明' END from uc_user u
2、nvl;isnull
判空用,如果为空则返回某值。
oracle:
select nvl(u.c_sex,0) from t_user u ;
MySql:
SELECT DISTINCT IFNULL(u.group_code,'不明') FROM uc_user u;
3、时间:
时间转字符串
Oracle:在此不区分大小写
select distinct to_char(u.c_createdate,'yyyy-mm-dd hh24:mi:ss') from t_user u;
MySql:区分大小写
SELECT DATE_FORMAT(u.CREATE_TIME,'%Y-%m-%d %H:%i:%s') FROM `uc_user` u;
字符串转时间
Oracle:
select to_date('2020-04-26 11:00:00','yyyy-mm-dd hh24:mi:ss') from dual;
MySql:
SELECT STR_TO_DATE('20200426103600','%Y%m%d%H%i%s') < NOW() from dual;
获取当前时间,Oracle为sysdate,MySql为now()函数,在查询字段上,Oracle不能有判断boolean返回值,MySql允许。