Порядок SQL в двух столбцах

#sql #oracle

#sql #Oracle

Вопрос:

Я схожу с ума, пытаясь исправить эти небольшие проблемы. Я пытаюсь привести 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;
 

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. Вопрос: Сохранили ли вы свой столбец DATE_TIME в базе данных как тип даты / времени… или как ТЕКСТОВЫЙ тип? Вопрос: Какую базу данных вы используете?

2. Я сохранил его как тип даты / времени

3. Так вы хотите сказать, что state_out_dttm на самом деле это дата-время, а не текст?

4. Это должен быть тип даты / времени. Я добавлю скриншот общего запроса.

Ответ №1:

Поскольку кажется, что ваш state_out_dttm столбец на самом деле является текстом, а не датой, вы должны использовать TO_DATE , not TO_CHAR , для первого преобразования в настоящую дату, прежде чем пытаться сортировать:

 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;
 

Комментарии:

1. Я получаю ORA-01843: недействительный месяц

2. Тогда, возможно, в state_out_dttm столбце есть неверные / недопустимые данные. Еще одна причина никогда не сохранять даты в виде текста :-)

3. могу ли я каким-либо образом проверить, что он сохранен в виде текста?

4. Конечно: опишите имя таблицы PS: Я очень надеюсь, что это не производственная база данных, и у вас нет прав администратора: (