分享几个mysql 查询

1,json字段的使用

select person.id as userid, vUserName as 姓名,downinfo->>'$.devkey' as devmac,if(downtype=1,"手机","钥匙") as 来源,downtime as 打卡时间,"下班" as 事件, if(downstatus=0,"正常","异常") as 状态  from worklog  JOIN person ON worklog.userId=person.id  WHERE (tday BETWEEN '2018-05-02' AND '2018-05-02' )

2,查询判断-输出

SELECT person.id,vUserName as 姓名,devmac as 设备标识,if(dtype=1,"手机","钥匙") as 来源, FROM_UNIXTIME(time,'%Y-%m-%d %H:%i:%s') as 打卡时间,if(wtype=0,"上班","下班") as 事件,if(status=0,"正常","异常") as 状态

from workloginfo JOIN person ON workloginfo.userId=person.id WHERE ( tday BETWEEN '2018-05-03' AND '2018-05-03')and wtype=0  ORDER BY person.id  and dtype=2

3,查找相近记录的时间差

SELECT

tc.userid,

tc.username AS 姓名,

tc.wtime as 离开时间,

tc.intime as 回来时间,

FLOOR(

TIMESTAMPDIFF(SECOND, tc.wtime, tc.intime) / 60

) AS 离开时长

FROM

(

SELECT

`check`,

userId AS userid,

person.vUserName AS username,

devmac,

lastintime AS wtime,

(

SELECT

lastintime

FROM

checklog tb

WHERE

tb.userId = ta.userId

AND `check` = 0

AND (tb.time -ta.time)>=5

AND (tb.time BETWEEN UNIX_TIMESTAMP('2018-05-08 0:00:01')

AND UNIX_TIMESTAMP('2018-05-08 23:59:59'))

ORDER BY

tb.time

LIMIT 1

) AS intime

FROM

checklog ta

JOIN person ON ta.userId = person.id

WHERE

(

time BETWEEN UNIX_TIMESTAMP('2018-05-08 0:00:01')

AND UNIX_TIMESTAMP('2018-05-08 23:59:59')

)

AND `check` > 1

) tc

ORDER BY 离开时间

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,538评论 0 13
  • 先创建服务端的APP 1.官网下载Winrun4j。http://winrun4j.sourceforge.net...
    Alex_1799阅读 1,861评论 1 2
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,257评论 0 7
  • 遇到两场对话,让我再次想对于爱写一点自己的理解。 场景A: 你好,最近心情很烦躁,觉得很无聊,感觉活着好没意思。 ...
    一然之耕耘此心阅读 198评论 0 1
  • '到处都在庆祝新年,我也想给同学们点惊喜!从中午十一点开始,就投入了烤蛋挞的挑战中! 给全班同学烤蛋挞!不是一件容...
    开心_时间阅读 291评论 0 1