因为小编以前都是用oracle数据库的,真心感觉oracle是比mysql用起来方便多的,近期有用到在mysql查询时有格式化日期,但是发现和oracle完全不一样,这里小编总结并对比一下常用的一些格式化方法
mysql: date_format(date, '%Y-%m-%d') Y就表示某年(2014),y表示两位(20)m表示某月(08),d表示某天(31)
或者 date_format(date, '%yy-%m-%d')
oracle:to_date(date,'yyyy-MM-dd')和java格式化一样,或者to_char(date,'yyyy-MM-dd')都可以
and date_format(a.created_on, '%Y-%m-%d') >=#{startDate}
and date_format(a.created_on, '%Y-%m-%d') <=#{endDate}
还有就是我遇到的有些直接用sql判断该字段是不是空,如果时空就让他为0,不为空就等于本身
mysql ifnull(date,0)
oracle nvl(date,0)
//直接举个sql列子
select t.user_name, ifnull(cc.count,0) count,cast(ifnull(cc.grade,0) as DECIMAL(10,2)) grade
from (select m.*
from js_sys_user m,
js_sys_user_role n
where m.user_code = n.user_code
and n.role_code in ('user')) t
left join (select *
from (select tt.user_code, count(1) count, avg(tt.grade) grade
from (select (select c.grade grade
from t_task_dealmsg c
反正很多语法完全是不一样的,两种都会有时候用起来还容易混淆