Sql 日期转换为MM/DD/YY时按日期订购

Sql 日期转换为MM/DD/YY时按日期订购,sql,database,sql-order-by,Sql,Database,Sql Order By,我有一个类似这样的伪语言查询 SELECT * FROM TMP ( SELECT NAME , Format([CREATE_DATE],"dd/mm/yyyy") AS CREATE_DATE FROM TABLE )TMP ORDER BY CREATE_DATE 创建日期以DD/MM/YY/HH/SS/MS格式存储在数据库中 由于我们正在转换为DD/MM/YY,内部表已丢失时间戳。 现在我有一堆同一天的记录 问题是,如果我们一次又一次地询问这个问题,并且我们有5000多条记录,

我有一个类似这样的伪语言查询

SELECT * FROM TMP
(
SELECT 
NAME , 
Format([CREATE_DATE],"dd/mm/yyyy") AS CREATE_DATE
FROM 
TABLE 
)TMP
ORDER BY CREATE_DATE
创建日期以DD/MM/YY/HH/SS/MS格式存储在数据库中

由于我们正在转换为DD/MM/YY,内部表已丢失时间戳。 现在我有一堆同一天的记录

问题是,如果我们一次又一次地询问这个问题,并且我们有5000多条记录,结果是否总是一样的?Order By只是有许多相同日期的记录,因此我的问题是。但是,实际记录有时间戳,在第一次查询后会被截断

我认为可以用一种更简单的方式来问这个问题。 假设我们有n个相同值的记录,我对相同值进行排序,SQL会一直显示相同的结果吗?在任何情况下,它是否由主IDN安排以确保结果的顺序相同

非常具体地说,我们遇到了与此类查询相关的问题,并在ORACLE中报告,但在SQL中没有报告,这有什么意义吗?这可能有点随机,我害怕在ORACLE中使用这个词,而SQL不在这个特定的上下文中?我只是想理解

您可以这样做:

SELECT <columns that you want> FROM
(
SELECT 
NAME , 
Format([CREATE_DATE],"dd/mm/yyyy") AS CREATE_DATE, create_date as orig_createDate
FROM 
TABLE 
)TMP
ORDER BY orig_create_date
也就是说,只需从子查询中传入原始日期,并将其用于排序。您不必将其包含在输出中


你的最后一个问题是关于一个排序是否稳定。也就是说,当行具有相同的值时,它们将按相同的顺序排序。答案是否定的。数据库通常不会通过使用稳定的排序算法来保证顺序。所以它们的排列顺序可能不同。

谢谢,这确实很有趣。我将对此进行研究,但是在我的例子中,DB是否会显示相同值的随机顺序?有什么想法吗?你不确定内部发生了什么。硬盘块的顺序可能会影响结果,而这些并非总是100%相同。我认为我们把事情视为理所当然:-而我们应该意识到CPU只是重新做同样的工作!只是想知道一般情况下的情况。非常具体地说,我们有一个与Oracle中可能的这种订购相关的问题。SQL从来没有报告过任何问题任何想法?也许SQL有一种默认的排序方式,Oracle可以是随机的,就像我们不知道的那样:-?