2016-12-27 6 views
2

У меня есть столбец varchar, где некоторые значения находятся в формате mm/dd/yyyy, а некоторые из них находятся в yyyymmdd.Формат даты SQL Server yyyymmdd

Я хочу преобразовать все mm/dd/yyyy в формат yyyymmdd. Каков наилучший способ сделать это? Благодаря

Таблица является Employees и колонка DOB

+3

Фактических 'date' /' datetime' многозначных колонн дона У меня есть формат. Вы хотите сказать, что у вас есть столбцы, содержащие текстовые представления дат в столбцах 'char' /' varchar'? – Dai

+2

Никогда не сохраняйте значения даты/времени в столбцах varchar ... Вместо этого используйте правильные типы данных. – jarlh

ответ

6

Предполагая, что в столбце «дата» на самом деле не дата.

Select convert(varchar(8),cast('12/24/2016' as date),112) 

или

Select format(cast('12/24/2016' as date),'yyyyMMdd') 

Возвращает

20161224 
2

В SQL Server, вы можете сделать:

select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col) 

Это попытка преобразования, сохраняя прежнее значение, если доступно.

Примечание: Я надеюсь, вы узнали урок о хранении дат в качестве дат, а не строк.

2

попробовать это ....

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees; 
1
DECLARE @v DATE= '3/15/2013' 

SELECT CONVERT(VARCHAR(10), @v, 112) 

вы можете конвертировать любой формат дата или время даты формат YYyyMmDd без разделителей

+3

Не могли бы вы добавить немного более подробно? – Jonas

Смежные вопросы