mysql时间排序最后一个_如何在MySQL中按日期排序,但最后放置空日期?

按日期排序,并借助ORDER BY子句和IS NULL属性设置最后一个空日期。语法如下:SELECT *FROM yourTableName

ORDER BY (yourDateColumnName IS NULL), yourDateColumnName DESC;

在上述语法中,我们将在该日期之后首先对NULL进行排序。为了理解上述语法,让我们创建一个表。创建表的查询如下:mysql> create table DateColumnWithNullDemo

-> (

-> Id int NOT NULL AUTO_INCREMENT,

-> LoginDateTime datetime,

-> PRIMARY KEY(Id)

-> );

使用insert命令在表中插入一些记录。查询如下:mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(date_add(now(),interval -1 year));

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(NULL);

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(NULL);

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(now());

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(curdate());

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values('2017-08-25 15:30:35');

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(NULL);

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values('2016-12-25 16:55:55');

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values(NULL);

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values('2014-11-12 10:20:23');

mysql> insert into DateColumnWithNullDemo(LoginDateTime) values('2020-01-01 06:45:23');

使用select语句显示表中的所有记录。查询如下:mysql> select *from DateColumnWithNullDemo;

以下是输出:+----+---------------------+

| Id | LoginDateTime       |

+----+---------------------+

|  1 | 2018-01-29 17:07:20 |

|  2 | NULL                |

|  3 | NULL                |

|  4 | 2019-01-29 17:07:54 |

|  5 | 2019-01-29 00:00:00 |

|  6 | 2017-08-25 15:30:35 |

|  7 | NULL                |

|  8 | 2016-12-25 16:55:55 |

|  9 | NULL                |

| 10 | 2014-11-12 10:20:23 |

| 11 | 2020-01-01 06:45:23 |

+----+---------------------+

11 rows in set (0.00 sec)

这是最后设置NULL值并按降序对日期进行排序的查询:mysql> select *from DateColumnWithNullDemo

-> order by (LoginDateTime IS NULL), LoginDateTime DESC;

以下是输出:+----+---------------------+

| Id | LoginDateTime       |

+----+---------------------+

| 11 | 2020-01-01 06:45:23 |

|  4 | 2019-01-29 17:07:54 |

|  5 | 2019-01-29 00:00:00 |

|  1 | 2018-01-29 17:07:20 |

|  6 | 2017-08-25 15:30:35 |

|  8 | 2016-12-25 16:55:55 |

| 10 | 2014-11-12 10:20:23 |

|  2 | NULL                |

|  3 | NULL                |

|  7 | NULL                |

|  9 | NULL                |

+----+---------------------+

11 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值