Преобразовать строковое поле в значение даты в другом формате с помощью запроса выбора SQL - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть таблица с колонкой start_date. К сожалению, тип столбца VARCHAR. Значения в этом столбце являются либо нулевыми, либо строковыми датами в любом формате.

У меня есть требование извлечь данные из этой таблицы в файл CSV с помощью команды BCP. Но при извлечении ожидается, что значение start_date будет иметь формат YYYYMMDD в выходном файле.

Проблема здесь в том, что для некоторых записей start_Date будет в формате DD / MM / YYYY, а для некоторых других - в формате другой формат. Например: ГГГГ-ММ-ДД.

Есть ли способ, чтобы я мог преобразовать значение start_date в формат YYYYMMDD независимо от фактического формата, используя сам запрос select.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

select convert(DATE,'13/12/2019',112) as 'AliasName'

Эта функция поможет вам при извлечении данных в формате ГГГГММДД, независимо от того, каков формат вашего столбца ввода. Эта функция использует 3 аргумента 1. ТИП ДАННЫХ, КОТОРЫЙ U ХОТИТЕ ПРЕОБРАЗОВАТЬ 2. ВАШУ КОЛОННУ ВВОДА, КОТОРУЮ ВЫ ХОТИТЕ ПРЕОБРАЗОВАТЬ 3. СТИЛЬ (номер стиля: каждый формат имеет свой собственный номер стиля, например, если вы задаете номер стиля как 103, он преобразуется в дд / мм / гггг или если его 112 преобразует в ГГГГММДД. Есть много стилей. Вы найдете его, если будете искать функцию конвертации). Надеюсь, это поможет!

0 голосов
/ 22 апреля 2020

Надеюсь, это поможет !!

select
    *,
    (CASE WHEN [Date] like '%/%' then TRY_CONVERT(datetime,[Date],103)
    else [Date] END) as [New_DATE]    
from TableName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...