发表于: 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 





返回列表 返回列表
评论

    分享到