mysql记录根据日期字段倒序输出

mysql记录根据日期字段倒序输出,第1张

我们知道倒序输出是很简单的

select

*

from

table

order

by

id

desc

直接这样就可以

那么现在的问题在于日期字段怎么来倒序输出

这里我们用到cast()来将指定的字段转换为我们需要的类型

如下是实际项目中的sql语句

select

*

from

water

where

phoneNumber=@phoneNumber

order

by

cast(date

as

datetime)

desc

我们说学而不思则罔,我们来思考下深层次的内容。

经过查阅资料得知类型的转换有两种方式

1.cast()方法

2.convert()方法

使用格式

1.cast(字段名

as

数据类型)

如上述sql语句

cast(date

as

datetime)

2.convert(字段名,数据类型)

例:convert(da,datetime)

以上所述是小编给大家介绍的mysql记录根据日期字段倒序输出

,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

直接在limit 前面 加一个排序 这里我以 创建时间为例 以创建时间 倒序排列$sql="select * from qt_1018 order by createtime desc limit $rbe,$pagesize"

# mysql不支持其它复杂数据库的类似 rank() over 的排名和统计查询# 只能通过变通的子查询和逻辑计算方式来实现,对于中小数据量可以考虑-- rank 排名实现select inline_rownum, aa, cc, amt, orderid FROM(select# logic_cal 只是实现计数器计算的,每次逐条查询时会对比当前 cc 与 @last_cc 是否相同,如果不同则把当前该列值赋于 @last_cc 并重设计数器 @num := 1,否则计数器自加 @num := @num + 1(case when cc <>@last_cc then concat(@last_cc := cc, @num := 1 ) else concat(@last_cc, @num := @num + 1) end ) logic_cal, @num as inline_rownum, aa, cc, amt, orderidfrom tb_rank,( select @last_cc := '') t, # 初始化 @last_cc 为 '', 如要检查的列(基于计数器统计的列)是int型,则初始化为0varchar型初始化为''( select @num := 0 ) t2 # 初始化@num为0order by cc, orderid asc # 排序的方式会影响@num的生成,因为logic_cal是逐行计算的) twhere inline_rownum <= floor(amt*0.8) #限制条数,取常量值或其他order by cc,orderid asc


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/6172508.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存