MySQL根据string类型的时间来排序

使用UNIX_TIMESTAMP函数

比如 我的时间格式是 2021/5/5 1:00:00 这种的string类型的日期 如果直接 ORDER BY 数据会乱 会出现 00 ,10, 12, 1, 2, 3 这样的时间排序 如图
MySQL根据string类型的时间来排序_第1张图片

这个时候就能使用unix_timestamp函数

				ORDER BY  unix_timestamp(要排序的字段) DESC

这样的话就i完美解决了


解释

1 无参数调用:UNIX_TIMESTAMP()

返回值:自’1970-01-01 00:00:00’的到当前时间的秒数差

例子:SELECT UNIX_TIMESTAMP() => 1339123415

2 有参数调用:UNIX_TIMESTAMP(date)

其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字

返回值:自’1970-01-01 00:00:00’与指定时间的秒数差

举例说明:

DATE字符串格式:(日期类型)

SELECT UNIX_TIMESTAMP(‘2012-06-08’) => 1339084800

SELECT UNIX_TIMESTAMP(CURRENT_DATE()) =>1339084800

注:CURRENT_DATE ()的返回值是一个DATE字符串格式

以下几种格式返回的结果相同:

SELECT UNIX_TIMESTAMP(‘20120608’);

SELECT UNIX_TIMESTAMP(‘2012-6-8’);

SELECT UNIX_TIMESTAMP(‘2012-06-08’);

结果都是:1339084800

DATETIME字符串格式:(日期和时间的组合类型)

SELECT UNIX_TIMESTAMP(‘2012-06-08 10:48:55’) => 1339123415

SELECT UNIX_TIMESTAMP(NOW()) => 1339123415

注:NOW()的返回值是一个DATETIME字符串格式


你可能感兴趣的:(spring,boot,sql,java)