发表于: 2016-11-03 22:43:59
2 2280
今天完成的事情:找到了sql的写法,使用聚合函数计算列与列的差并排序
明天计划的事情:由于接受的项目经常报空指针,我要将这个项目的风格改成我自己的风格,将system.out.print换成log,添加接口注释,
大言不惭的使用重构这个词来形容下明天的工作。
收获:
1.
DATE_FORMAT(create_time,'%Y%m%d%H%i%s'),聚合函数,将数据库保存的时间转换为类似201608081123555的格式
2.时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
3.
UNIX_TIMESTAMP 聚合函数,实现计算两列日期之差的方法
http://www.cnblogs.com/hongfei/archive/2012/06/08/2541599.html
举例
select
a.StartTime,a.UninstallTime,
UNIX_TIMESTAMP(a.UninstallTime)-UNIX_TIMESTAMP(a.StartTime) as time
from yb_lineway_driver as a order by time desc
4.
CASE WHEN THEN
sql条件控制
两种形式
1)case when x = 参数 then 要执行的内容 else 否则就执行的内容 end 结束
2)case x when 参数1 then 要执行的内容 else 否则就执行的内容 end 结束
举例
select
a.*,
CASE a.StatusParentType
when 10 then
FORMAT((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(a.StartTime))/3600,1)
when 20 then
FORMAT((UNIX_TIMESTAMP(a.UninstallTime)-UNIX_TIMESTAMP(a.StartTime))/3600,1)
when 30 then
FORMAT((UNIX_TIMESTAMP(a.UpdateTime)-UNIX_TIMESTAMP(a.StartTime))/3600,1)
else
FORMAT((UNIX_TIMESTAMP(a.UpdateTime)-UNIX_TIMESTAMP(a.StartTime))/3600,1)
end
as time
from yb_lineway_driver as a
order by time desc
这里可以改写为mybatis版,先挖个坑
5.
eclipse 使用svn
http://jingyan.baidu.com/article/8275fc869b3b0046a03cf6f0.html
找到了熟悉的味道,以前用idea上传代码感觉棒极了,现在发现eclipse的svn插件也很好,比手动解决冲突好用多了
6.
union 与union all 联合查询
union all 会出现重复结果,union不会
7.
order by 多个列排序,一开始不知道order by 可以连接多个列排序,就使用了union,别人一提醒知道了多个列排序的方法
order by a asc ,b asc
评论