Пожалуйста, помогите, это сводило меня с ума в течение нескольких месяцев.
Я запрашиваю данные из базы данных MS SQL, которая не очень хорошо сконструирована и имеет много проблем.Одна конкретная проблема, которая до сих пор ставила меня в тупик, - это представление даты в формате, понятном пользователям и распознаваемом Excel как дата (не текстовая)
Для начала, дата в этой БД хранится как 'ггггммдд варчар (8).Я хочу конвертировать в дд / мм / гггг (британский формат).Я добился этого, используя множество различных функций следующим образом ...
FORMAT(CAST(20180728 as date, 'dd/MM/yyyy')
CONVERT(date,20180728,120)
SUBSTRING(20180728,7,2) + '/' + SUBSTRING(20180728,5,2) + '/' + SUBSTRING(20180728,1,4)
Все они обеспечивают желаемый результат, но при просмотре в Excel они рассматриваются как текст, поэтому фильтрация по диапазону становится проблемой.
Затем я обнаружил следующую функцию, которая распознается Excel как дата, но не является удобным для пользователя отображением ...
CONVERT(smalldatetime, 20180728, 103)
Возвращает формат как 2018-07-28 00:00:00, несмотря на чтение на всех сайтах, которые я посетил, код 103 должен возвращаться в британском формате.
Я ценю, что, как только данные в Excel, их можно переформатировать, но я пытаюсь избежать этого и ввестипрямой переход в Excel без вмешательства пользователя.
Надеемся на отличный ответ