对于查询:按降序根据需要订购数据库记录 - 甲骨文
SELECT MAX(LOG_CREATION_DATE),COL_A, COL_B
FROM IMPORT_LOG
GROUP BY TO_CHAR(LOG_CREATION_DATE, 'MM-DD-YYYY'),
COL_A,
COL_B
ORDER BY MAX(LOG_CREATION_DATE) DESC
;
记录:
09-FEB-12 12.59.18.000000000 PM
09-FEB-12 12.41.42.000000000 PM
09-FEB-12 11.26.15.000000000 AM
09-FEB-12 11.26.00.000000000 AM
01-FEB-12 01.27.11.000000000 PM
01-FEB-12 01.25.18.000000000 PM
01-FEB-12 01.25.17.000000000 PM
01-FEB-12 01.24.36.000000000 PM
25-JAN-12 02.39.11.000000000 PM
25-JAN-12 02.32.05.000000000 PM
25-JAN-12 02.31.37.000000000 PM
25-JAN-12 02.31.34.000000000 PM
但是,当我更改查询的格式相同的时间戳列,顺序完全变为:
02-09-2012 12:02:18
02-09-2012 12:02:42
02-09-2012 11:02:15
02-09-2012 11:02:00
02-01-2012 01:02:11
02-01-2012 01:02:18
02-01-2012 01:02:17
02-01-2012 01:02:36
01-25-2012 02:01:11
01-25-2012 02:01:05
01-25-2012 02:01:37
01-25-2012 02:01:34
更新查询
SELECT TO_CHAR(MAX(LOG_CREATION_DATE), 'MM-DD-YYYY HH:MM:SS'),COL_A, COL_B
FROM IMPORT_LOG
GROUP BY TO_CHAR(LOG_CREATION_DATE, 'MM-DD-YYYY'),
COL_A,
COL_B
ORDER BY MAX(LOG_CREATION_DATE) DESC
;
为什么输出改变了?
看起来它仍然按降序时间戳排序,而不是由字符表示形式(假设所有'02'分钟都是错字)。为什么你要在MDY上订购你的结果? – 2012-02-15 23:16:49
'LOG_CREATION_DATE'是一个时间戳字段,排序不是由MDY完成的。 “所有'02分钟'是什么意思是一个错字”? – 2012-02-15 23:19:41
没有什么是结果中的拼写错误,而这正是我发布它的原因。为什么TO_CHAR()会改变时间戳和排序? – 2012-02-15 23:25:14