【问题标题】:Mysql query result date time wiseMysql查询结果日期时间明智
【发布时间】:2015-02-03 11:07:01
【问题描述】:

我试过这样 这是我的查询

SELECT sloat_day, sloat_start_time 
FROM time_table 
WHERE sloat_day BETWEEN '2014-12-01' AND '2014-12-07' 
ORDER BY sloat_day, sloat_start_time ASC

我得到以下输出

sloat_day   sloat_start_time
2014-12-01  6.30
2014-12-01  7.30
2014-12-01  18.30
2014-12-01  19.30
2014-12-02  6.30
2014-12-02  7.30
2014-12-02  18.30
2014-12-02  19.30
2014-12-03  6.30
2014-12-03  7.30
2014-12-03  18.30
2014-12-03  19.30
2014-12-04  18.30
2014-12-04  19.30
2014-12-05  7.30
2014-12-05  18.30
2014-12-05  19.30
2014-12-06  19.30
2014-12-07  7.30
2014-12-07  8.30
2014-12-07  18.30
2014-12-07  19.30

我想要如下查询结果,我想在查询中更改以获得此输出,请帮助我

2014-12-01  6.30
2014-12-02  6.30
2014-12-03  6.30
2014-12-04  18.30
2014-12-05  7.30
2014-12-06  19.30
2014-12-07  7.30
2014-12-01  7.30
2014-12-02  7.30
2014-12-03  7.30
2014-12-04  19.30
2014-12-05  18.30
2014-12-07  8.30
2014-12-01  18.30
2014-12-02  18.30
2014-12-03  18.30
2014-12-05  19.30
2014-12-07  18.30

【问题讨论】:

    标签: mysql sql date select sql-order-by


    【解决方案1】:

    试试这个:

    SELECT sloat_day, sloat_start_time
    FROM (SELECT sloat_day, sloat_start_time, 
                 IF(@day=@day:=sloat_day, @id:=@id+1, @id:=1) rank  
          FROM time_table, (SELECT @id:=0, @day:='') AS a 
          WHERE sloat_day BETWEEN '2014-12-01' AND '2014-12-07' 
          ORDER BY sloat_day, sloat_start_time 
        ) AS A 
    ORDER BY rank, sloat_day, sloat_start_time
    

    查看SQL FIDDLE DEMO

    输出

    |         SLOAT_DAY | SLOAT_START_TIME |
    |-------------------| -----------------|
    | December, 01 2014 | 06:30:00         |
    | December, 02 2014 | 06:30:00         |
    | December, 03 2014 | 06:30:00         |
    | December, 04 2014 | 18:30:00         |
    | December, 05 2014 | 07:30:00         |
    | December, 06 2014 | 19:30:00         |
    | December, 07 2014 | 07:30:00         |
    | December, 01 2014 | 07:30:00         |
    | December, 02 2014 | 07:30:00         |
    | December, 03 2014 | 07:30:00         |
    | December, 04 2014 | 19:30:00         |
    | December, 05 2014 | 18:30:00         |
    | December, 07 2014 | 08:30:00         |        
    | December, 01 2014 | 18:30:00         |
    | December, 02 2014 | 18:30:00         |
    | December, 03 2014 | 18:30:00         |
    | December, 05 2014 | 19:30:00         |
    | December, 07 2014 | 18:30:00         |
    | December, 01 2014 | 19:30:00         |
    | December, 02 2014 | 19:30:00         |
    | December, 03 2014 | 19:30:00         |
    | December, 07 2014 | 19:30:00         |
    

    【讨论】:

    • 日期重复来了,所以我改变了 ORDER BY 等级,sloat_start_time,sloat_day 改变后我得到了像这个日期 2014-12-07 这样的输出来了 2 次​​span>
    • 非常感谢如何使用连接查询我想借助 time_table 中的 id 列获取 usertable 中的用户名
    【解决方案2】:

    尝试运行这个

    SELECT sloat_day, sloat_start_time 
    FROM time_table 
    WHERE sloat_day BETWEEN '2014-12-01' AND '2014-12-07' 
    GROUP BY sloat_day
    ORDER BY sloat_start_time, sloat_day ASC
    

    MySQL 将按照您要求的顺序运行所有内容,因此将其设置为先按sloat_day 将使其首先按该列排序。

    【讨论】:

    • 我得到了像这个日期 2014-12-07 这样的输出 2 次,我不希望 sloat_day sloat_start_time 2014-12-01 6.30 2014-12-02 6.30 2014-12-03 6.30 2014-12- 04 6.30 2014-12-05 6.30 2014-12-06 6.30 2014-12-01 7.30 2014-12-02 7.30 2014-12-03 7.30 2014-12-04 7.30 2014-12-05 7.30 2014-1. 2014-12-07 7.30 2014-12-07 8.30 2014-12-01 18.30 2014-12-02 18.30 2014-12-03 18.30 2014-12-04 18.30 2014-12-05 18.30 2014-14-0 2014-14-0 12-07 18.30 2014-12-01 19.30 2014-12-02 19.30 2014-12-03 19.30 2014-12-04 19.30 2014-12-05 19.30 2014-12-06 19.30 2014-12-07 19.304-12-07
    【解决方案3】:

    改变 ORDER 子句中列的顺序,像这样。

    SELECT sloat_day, sloat_start_time 
    FROM time_table 
    WHERE sloat_day BETWEEN '2014-12-01' AND '2014-12-07' 
    ORDER BY sloat_start_time, sloat_day ASC
    

    这样,查询将首先按 sloat_start_time 排序。

    【讨论】:

    • 我得到了像这个日期 2014-12-07 这样的输出 2 次,我不希望 sloat_day sloat_start_time 2014-12-01 6.30 2014-12-02 6.30 2014-12-03 6.30 2014-12- 04 6.30 2014-12-05 6.30 2014-12-06 6.30 2014-12-01 7.30 2014-12-02 7.30 2014-12-03 7.30 2014-12-04 7.30 2014-12-05 7.30 2014-1. 2014-12-07 7.30 2014-12-07 8.30 2014-12-01 18.30 2014-12-02 18.30 2014-12-03 18.30 2014-12-04 18.30 2014-12-05 18.30 2014-14-0 2014-14-0 12-07 18.30 2014-12-01 19.30 2014-12-02 19.30 2014-12-03 19.30 2014-12-04 19.30 2014-12-05 19.30 2014-12-06 19.30 2014-12-07 19.304-12-07
    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多