‘壹’ sql order by 日期 排序问题
首先我不知道你的日期字段到底是什么,这一点我想要先确定,如果是datetime型的话,那么你按照这个排序照理来说本来就是精确到秒的,你最好拿出一个日期的实际值给我们
如果你的日期字段其实是文本型,存储的诸如:'20090101’,那么根本就不可能考虑什么秒或者毫秒,因为你根本就没有存储这些信息
至于SqlServer的时间排序法,datetime型因为本身就是诸如
'20091001
11:23'这样的格式,所以排序根本不需要考虑什么日期相同怎么办,如果有些奇怪的人喜欢用月、年、日期排序,也不是不可以
比如说
order
by
month(gatedate()),year(gatedate()),day(gatedate())
秒和分钟的函数我急不起来了,你可以查一下帮助,无论你想要怎么排序都是非常容易的
‘贰’ SQL按时间排序
按修改的时间倒序排列语句为:
select * from MyTable Order By ModifyTime Desc
如果只想显示最新一条,语句为:
select top 1 * from MyTable Order By ModifyTime Desc
示例:
表查询结果为:
按时间排序后为:
只显示最新一条结果为:
扩展:
ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
‘叁’ sql 每个编号按时间排序取前两条数据
selectt.编号,t.时间
from
(select编号,时间,row_number()over(partitionby编号orderby时间)rnfrom表名)t
wheret.rn<=2
sqlserver或oracle就用上边的吧
‘肆’ sql数据库中时间类型如何排序
我们看到的是这种格式的字符串2009-10-18 10:49:25.00其实在数据库内部记忆的是从1900到现在的毫秒数所以你排序的时候,是以。1900年到指定时期的毫秒数大小来排序的
‘伍’ sql的表中有一列是时间,格式是2011-12-01 12:21:23是字符串形式的,怎么按照这种格式排序啊
可以转成日期排序
order by convert(datetime, 字符串日期字段, 120) asc(或者desc)
但是,要求你的字段一定要符合你所说的这样的格式,否则转日期会有错误。