В моем запросе SELECT, у меня есть: MIN(a.orderdue)
AS «старейшей даты заказа»Форматирование даты, затрагивающей MIN
Это работает в том, что она приносит через старейшую дату заказа, однако он приносит через формат дату, как: 2015-06 -11 11: 30,000
Таким образом, я внес изменения в SELECT, запрос:
MIN (CONVERT(varchar(17),a.orderdue,103)) AS 'Oldest order date'
Это приводит дату через, как 11/06/2015, который является предпочтительным.
Но я заметил, что это повлияло на выход: функция MIN больше не возвращает первую (старую) дату, но совершенно другое значение.
Я понимаю, что этот вопрос трудно ответить без возможности выполнить запрос yourelf, но очевидно, что изменение формата для даты повлияло на вывод MIN. Есть ли способ изменить форматирование даты без этого?
Благодаря
Как только вы преобразовать дату в VARCHAR, он сравнивается как VARCHAR, при этом первый символ сравнивается, затем второй символ, поэтому при сравнении строк строка «01/01/2050» появляется после «31/12/1900», так как «3> 1», и это все, что используется для сравнения. Как было сказано в ответе, вам сначала нужно получить минимум, а затем применить форматирование - хотя на самом деле форматирование - это что-то, что обычно осталось для уровня представления и не обрабатывается в SQL. – GarethD
Спасибо, что взяли на себя труд ответить и отметили re varchar. –