|
功能 | Oracle | Mysql | 判断是否为空 | NVL | IFNULL | 順序號
| SEQUENCE
| SELECT LPAD(SMT.NEXTVAL('SEQ1') ,10,'0') FROM DUAL
| 替換內容
| decode(ttype,1,’a',2,’b',3,’c',’d')
| if(ttype=1, 'a',if(ttype=2,'b', if(ttype =3, 'c', 'd')))
或者
case ttype when 1 then 'a' when 2 then 'b' when 3 then 'c' else 'd' End as ttype
| LPAD / RPAD
| LPAD / RPAD
| LPAD / RPAD 相同
| 鎖
| FOR UPDATE OF DATA4
| FOR UPDATE .似乎只能按行锁?
| 日期變字符串
| to_char
| date_format(date,'%Y-%m-%d')
格式如下:%Y%m%d %H%i%s
timestampdiff(week/HOUR,'2011-09-30','2015-05-04');
| 字符串變日期
| to_date
| str_to_date(date,'%Y-%m-%d')
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月, 格式为(01……12)
%c:代表月, 格式为(1……12)
%d:代表月份中的天,格式为(00……31)
%e:代表月份中的天, 格式为(0……31)
%H:代表小时,格式为(00……23)
%k:代表小时,格式为(0……23)
%h:代表小时,格式为(01……12)
%I:代表小时,格式为(01……12)
%l:代表小时,格式为(1……12)
%i:代表分钟,格式为(00……59)
%r:代表 ??,格式?12 小?(hh:mm:ss [AP]M)
%T:代表 ??,格式?24 小?(hh:mm:ss)
%S:代表 秒,格式?(00……59)
%s:代表 秒,格式?(00……59)
| 字符串连接
| ||
| CONCAT(str1,str2,K)
| 字符串变数字
| 字符串变数字
| CONVERT('23',SIGNED);
或者 CAST('3.35' AS signed);
还有的数据类型有BINARY, CHAR(), DATE, TIME, DATETIME, DECIMAL, SIGNED, UNSIGNED
方法一:SELECT CAST('123' AS SIGNED);
方法二:SELECT CONVERT('123',SIGNED);
方法三:SELECT '123'+0;
| 日期的加减
| date+1
| DATE_ADD(OrderDate,INTERVAL 2 DAY)
DATE_SUB
| 小数的格式化
| to_char(132.12345,"9999.99")
| FORMAT(12332.123456, 4);
| 时间差
| date1-date2
| timestampdiff(week/HOUR,'2011-09-30','2015-05-04');
参数1: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR
| sign函数
| sign
| sign
|
|
|