date_format(date,'%Y-%m-%d') -------------->oracle中的to_char(); to_char函数功能,就是将数值型或者日期型转化为字符型
str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();
oracle decode函数对应的mysql语句处理
如下示例
select
case
when t.task_type=11 then 1
when t.task_type=12 then 2
when t.task_type=13 then 3
when t.task_type=14 then 4
ELSE a.manange_id
end as manange_id
from 表名称
Oracle中concat使用以及与||区别:
CONCAT只能连接两个字符串
例:concat( string1, string2 )
--concat只能连接两个字符串,连接多个需要嵌套调用不方便
SQL> select concat('aa','bb') from dual;
CONCAT('AA','BB')
-----------------
aabb
--但是 || 可以直接连接多个字符串
SQL> select 'aa'||'bb'||'cc' from dual;
'AA'||'BB'||'CC'
mysql中concat使用:
mysql中concat函数,可以连接多个字符串
语法:concat(str1,str2,str3,...)
concat(floor(q.manPhoneCallTimeCount / 3600),':',floor(mod(q.manPhoneCallTimeCount, 3600) / 60),':',mod(q.manPhoneCallTimeCount, 60))
concat(floor(q.autoPhoneCallTime / 3600),':',floor(mod(q.autoPhoneCallTime, 3600) / 60),':', mod(q.autoPhoneCallTime, 60))
concat(floor(q.effectAutoPhoneCallTime / 3600),':',floor(mod(q.effectAutoPhoneCallTime, 3600) / 60),':', mod(q.effectAutoPhoneCallTime, 60))
mysql数值转字符的函数:
CAST(字段名 AS 要转换的类型)
CONVERT(字段名 , 要转换的类型)
mysql的case when :(可以替代oracle中的decode函数)
Case具有两种格式。简单Case函数和Case搜索函数。
简单Case函数
CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘2’ THEN ‘女’
ELSE ‘其他’ END
Case搜索函数
CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘2’ THEN ‘女’
ELSE ‘其他’ END
————————————————
mysql将数字转为字符串的方法:1、利用CHAR()函数,语法“SELECT CONVERT(数值,CHAR);”;2、利用“+”运算符,将数字与空字符串相加,语法“SELECT 数值+'';”。
CONVERT(
(case
when t.task_type=11 then 1
when t.task_type=12 then
when t.task_type=13 then 3
when t.task_type=14 then 4
ELSE a.manange_id
end ) , CHAR) manange_id ,
rownum=1 转 mysql_给mysql加下 rownum _转
mysql 中关于获取行号@rownum:=@rownum+1 需要进一步了解
mysql中没有获取行号的函数,因此需要通过一些自定义语句来进行获取。通常做法是,通过定义用户变量@rownum来保存表中的数据。通过赋值语句@rownum:=@rownum+1来累加达到递增行号。
例如:select a.* ,@rownum:=@rownum+1 from a,(select @rownum:=0) r; 后半部分语句的select @rownum:=0 相当于创建了r的新表,其表的列为@rownum,数值为0.
1、语法:concat(str1,str2);
显示:str1str2
总结:concat 只能连接两个字符串,|| 可以连接多个
如果多个字符串拼接,建议 "||",因为多个的话要嵌套concat函数,会消耗性能!
mysql中可以concat(str1,str2,str3...);
2、利用cast()函数,语法“cast('字符串' as 数值类型)”;
3、利用convert()函数,语法“convert('字符串', 数值类型)”
主建才可设置自增【如果没有设置主键可以使用这个语句】
1)设置主键,id为表字段
alter table 表名 add primary key (id);
如果该字段存在重复的记录需要先删除,才能设置主键
2)设置自增:id为表字段
alter table 表名 change id id int not null auto_increment ;
当前日期:2017/11/12 10:15:01
1、oracle中add_months()函数
SELECT add_months(SYSDATE,1) from dual; 查询结果 2017/12/12 10:15:18
2、mysql中ADDDATE()函数
SELECT ADDDATE(NOW(), INTERVAL 1 MONTH); 查询结果 2017-12-12 10:15:18
可以使用 CREATE VIEW 语句来创建视图。
语法格式如下:
CREATE VIEW <视图名> AS <SELECT语句>
书写格式:
Mysql书写格式和Oracle一样,唯一需要注意的一点是,mysql的起始位置只能从1开始,不能从0开始。
示例:
Select substr( '123456' , 1 , 3) as start1 from dual;
select substr('123456',0,3) as start0 from dual;
总结:mysql中时间函数sysdate() 与now() 函数都是取当前时间返回日期值,有一点区别是now()取的是语句开始执行的时间,sysdate()取的是动态时间
oracle中函数直接SYSdate就行
mysql模拟oracle创建序列号 (切记创建的nextval函数不能回滚,一直步增)
下面是示例跟步骤
1
drop table if exists sequence;
1.1
CREATE TABLE sequence(
sequence_id varchar(50) NOT NULL COMMENT '序列名称',
current_val int(10) not NULL COMMENT '当前值',
increment_val int(10) not NULL default 1,
PRIMARY KEY (sequence_id)) ;
2
INSERT INTO sequence VALUES ('seq_test','273','1');
2.1
create function currval( SEQ_TB_DATA_ASSISTANT_ORDER VARCHAR(50)) returns integer(11)
begin
declare value integer;
set value =273;
select current_val into value from sequence where sequence_id =SEQ_TB_DATA_ASSISTANT_ORDER ;
return value;
end;
2.2
select currval ('seq_test');
3
create function nextval( SEQ_TB_DATA_ASSISTANT_ORDER VARCHAR(50)) returns integer(11)
begin
update sequence set current_val = current_val + increment_val where sequence_id=SEQ_TB_DATA_ASSISTANT_ORDER ;
return currval(SEQ_TB_DATA_ASSISTANT_ORDER );
end;
4
select nextval('seq_test');
ROWNUM函数(oracle转mysql使用)
SELECT * from (select ROWNUM s, t.* FROM T_PR_APPLY t ) b
where b.s BETWEEN 5 and 10 查询第5到第10 的数据
select * from (select (@i:=@i+1) s, t.* FROM T_PR_APPLY t ,(select @i:=0) as it) r limit 5,5; 第5条后的五条数据
select * from (select (@i:=@i+1) s, TMP_PAGE.* FROM TMP_PAGE ,(select @i:=0) as it) r limit 0,1;
INSERT INTO user_log(content,create_time) VALUES(CONCAT('添加的用户信息为:',NEW.user_name,' 性别为:',NEW.sex ),NOW());