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

使用UNIX_TIMESTAMP函数

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

这个时候就能使用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字符串格式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值