首页 > 解决方案 > 两列中的 SQL 顺序

问题描述

我要疯了,试图解决这些小问题。我正在努力让一切DATE_TIME井井有条,并希望MISTI井井有条。屏幕截图显示了MISTI顺序,但没有显示日期。有什么方法可以从查询中删除 2019 年的日期吗?先感谢您!

    select To_Char(state_out_dttm, 'MM/DD/YYYY HH24:MI:SS') AS date_time, PARM, TRK_ID as MISTI,
num_value AS PM_NUMBER
from trk_id_parm
Where trk_id IN ('IMV01','IMV02','IMV03', 'IMV04', 'IMV05')
and state = 'SMM'
and PARM = '4440'
order by MISTI ASC, DATE_TIME DESC;

在此处输入图像描述

在此处输入图像描述

标签: sqloracle

解决方案


看来您的state_out_dttm列实际上是text,而不是 date,您应该使用TO_DATE, not TO_CHAR,在尝试排序之前首先转换为真正的 date:

SELECT
    TO_DATE(state_out_dttm, 'MM/DD/YYYY HH24:MI:SS') AS date_time,
    PARM,
    TRK_ID AS MISTI,
    num_value AS PM_NUMBER
FROM trk_id_parm
WHERE
    trk_id IN ('IMV01','IMV02','IMV03', 'IMV04', 'IMV05') AND
    state = 'SMM' AND
    PARM = '4440' AND
    EXTRACT(YEAR FROM TO_DATE(state_out_dttm, 'MM/DD/YYYY HH24:MI:SS')) <> 2019
ORDER BY
    MISTI,
    TO_DATE(state_out_dttm, 'MM/DD/YYYY HH24:MI:SS') DESC;

推荐阅读