求mysql大神帮助!如何将数据按照以每天早上4点为界限进行分组?

试一下上面的sql语句, 我觉得可以实现你的要求,解决思路就是肯定要分组,普通情况我们分组是同一天分在一组,这样会导致比如'2016-07-13 03:00:00' 这种时间会分在07-13号这一天里 ,按你的要求应该分在07-12这天里 才对,,所以我们把时间减去四个小时然后再分组,DATE_SUB(checktime,INTERVAL...
求mysql大神帮助!如何将数据按照以每天早上4点为界限进行分组?
select user_id,DATE_ADD(MAX(DATE_SUB(checktime,INTERVAL 4 hour)),INTERVAL 4 hour) ,DATE_ADD(MIN(DATE_SUB(checktime,INTERVAL 4 hour)),INTERVAL 4 hour) from checkinout group by user_id,DATE_FORMAT(DATE_SUB(checktime,INTERVAL 4 hour),'%Y-%m-%d') ;
试一下上面的sql语句, 我觉得可以实现你的要求,解决思路就是肯定要分组,普通情况我们分组是同一天分在一组,这样会导致比如'2016-07-13 03:00:00' 这种时间会分在07-13号这一天里 ,按你的要求应该分在07-12这天里 才对,,所以我们把时间减去四个小时然后再分组,DATE_SUB(checktime,INTERVAL 4 hour) 这个就是减去四个小时,然后用DATE_FORMAT 格式化成年月日的格式进行group by,select 的时候 MAX(DATE_SUB(checktime,INTERVAL 4 hour),min(...) 这个是查减了四小时的最大值和最小,也就是当天离开时间和到公司时间(减四小时),在用DATE_ADD 加四个小时,就是原本离开时间和到公司时间2018-03-22
mengvlog 阅读 8 次 更新于 2025-07-21 03:07:23 我来答关注问题0
  • select user_id,DATE_ADD(MAX(DATE_SUB(checktime,INTERVAL 4 hour)),INTERVAL 4 hour) ,DATE_ADD(MIN(DATE_SUB(checktime,INTERVAL 4 hour)),INTERVAL 4 hour) from checkinout group by user_id,DATE_FORMAT(DATE_SUB(checktime,INTERVAL 4 hour),'%Y-%m-%d') ;试一下上面的sql语句,...

  • 方法一:使用加法运算符(+)加法运算符(+)是实现数字相加最基本的方法之一,它可以直接对数字进行相加操作。下面是一个简单的示例:SELECT 1+2;执行该SQL语句,结果为3。如果你需要在查询中对表中的每一行进行相加操作,可以使用如下方法:SELECT a+b FROM table_name;其中a和b是两个数字列的名称...

  •  云易网络科技 mysql如何将一行数据拆分为多行?

    SELECT ID, Name, ‘English’, English AS score FROM student;这个语句会将三个SELECT查询的结果联合起来,每个SELECT查询返回的结果会独立占用一行。其中第一列ID和第二列Name是相同的,第三列代表科目,第四列代表对应的分数。2. 使用CASE语句实现转换 还是以student表为例,我们需要将...

  • MySQL中将多行数据合并成一行有多种方法。一种常见的方法是使用GROUP_CONCAT函数。例如,您可以这样写查询:select id,group_concat(re_id order by re_id separator ",") as re_id from tablename group by id。这种方法可以帮助您将同一id对应的多行re_id合并为一行,通过指定order by和separator...

  • 在MySQL数据库中,要将一个表的数据复制到另一个表中,可以通过创建新表的方式来实现。例如,你可以使用如下的SQL语句来完全复制一个表的数据及其结构:CREATE TABLE aa AS SELECT * FROM tree。这条语句会将tree表中的所有数据和结构复制到aa表中。如果你只想复制某些字段,可以使用INSERT INTO语句来...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部