sql order by 日期 排序问题

2025-02-24 04:04:06
推荐回答(5个)
回答1:

首先我不知道你的日期字段到底是什么,这一点我想要先确定,如果是datetime型的话,那么你按照这个排序照理来说本来就是精确到秒的,你最好拿出一个日期的实际值给我们
如果你的日期字段其实是文本型,存储的诸如:'20090101’,那么根本就不可能考虑什么秒或者毫秒,因为你根本就没有存储这些信息
至于SqlServer的时间排序法,datetime型因为本身就是诸如
'20091001 11:23'这样的格式,所以排序根本不需要考虑什么日期相同怎么办,如果有些奇怪的人喜欢用月、年、日期排序,也不是不可以
比如说
order by month(gatedate()),year(gatedate()),day(gatedate())
秒和分钟的函数我急不起来了,你可以查一下帮助,无论你想要怎么排序都是非常容易的

回答2:

个人思路:可以选择主键ID作为第二排序字段。
分析:
数据被批量更新时,更新顺序一般按照默认主索引排序进行依次更新。因此,个人认为也可以采取主键ID作为第二排序字段。

回答3:

1、若日期相同、且无其它排序条件,一般就是按记录顺序列出;
2、如果你是想要同一天的无论具体时间是几点几分,试试用 trunc(日期)看,这个函数把同一天的时间都截断到当天的0:00:00.0来处理
---
trunc是Oracle数据库提供的函数,这里的方法只是提供一个思路。
不知你用的是哪种数据库,不妨自己找找效果类似的函数。

回答4:

好,3Q

回答5:

我觉得是不是可以这样
更新时,将年月日时分秒毫秒都乘上一个由大至小的数再求和 之后就可依此来排序