Я новичок в SQL, поэтому этот вопрос-Finding MAX значения (ДАТА) в SQL
У меня есть DATE
колонки в моей таблице, и мой запрос должен получить значение с самым последним DATE
. Я понял, что я могу достигнуть его через любой из следующих ways-
SELECT TRUNC(MAX(createddatetm)) cdt FROM (SELECT TO_TIMESTAMP(TO_CHAR(createddate, 'Month dd, yyyy hh:mi AM'), 'Month dd, yyyy hh:mi AM') as createddatetm FROM comments WHERE commentid = '1234');
SELECT trunc(MAX(TO_TIMESTAMP(to_char(createddate, 'Month dd, yyyy hh:mi AM'), 'Month dd, yyyy hh:mi AM'))) FROM (SELECT createddate FROM comments WHERE commentid = '1234');
SELECT TRUNC(MAX(createddatetm)) cdt FROM (SELECT TO_CHAR(createddate, 'Month dd, yyyy hh:mi AM') as createddatetm FROM comments WHERE commentid = '1234');
SELECT trunc(MAX(to_char(createddate, 'Month dd, yyyy hh:mi AM'))) FROM (SELECT createddate FROM comments WHERE commentid = '1234');
ЗДЕСЬ МОЙ ВОПРОС -
Есть ли другой простой способ, с помощью которого я могу это достичь? Или я должен использовать любую из них, которую я поддержал? Кроме того, существуют ли различия между этими запросами в отношении производительности? Я не думаю, что есть, но мне нужно это подтвердить.
Причина, почему я преобразование даты в VARCHAR, чтобы преобразовать его обратно в дату/метки времени опять я хочу сравнение производится на основании даты и времени, а также, но не использовать значение для отображения? – AlwaysALearner
Сравнение будет выполнено всегда с использованием значения даты/времени. Если вы хотите скрыть временную часть во время отображения, отформатируйте столбец 'date', используя' to_char() '. Но лучше получить «реальные» значения в запросе и сделать форматирование в своем приложении (передняя часть). –