2016-06-22 7 views
0

Мне нужно преобразовать все значения в таблицу, и мне нужно, чтобы это изменение было постоянным, поэтому таблица имеет даты, и они отформатированы как dd.mm.yyy.Преобразование из VARCHAR в DATETIME

Мне нужно изменить их на DATETIME Формат yyyy-mm-dd.

+0

CAST (FieldName, как DateTime) Вам действительно нужно дать больше информации, некоторые выборочные данные и то, что вы уже пробовали и то, что есть и hasn» t работал –

+0

Сохраненный формат «dd.mm.yyy» или «dd.mm.yyyy»? –

ответ

0

Если ваши даты хранятся с соответствующим типом данных (дата, DateTime или datetime2), то они stored without any display format.

Если это так, вам нужно преобразовать их чтобы char(10) при выборе данных:

SELECT CONVERT(char(10), DateTimeColumn, 120) 

Если они хранятся в виде строкового типа, вы должны реорганизовать базу данных и хранить их должным образом. Если это невозможно по какой-то причине, вы можете конвертировать дважды. одна из строки на сегодняшний день, а другой один обратно в строку:

SELECT CONVERT(char(10), CONVERT(date, DateTimeStringColumn, 104), 120) 
0

Используйте функцию CONVERT со стилем 20.

SELECT CONVERT(VARCHAR,yourdatefield,20) 

Выходы:

yyyy-mm-dd hh:mi:ss 
0
SELECT CONVERT(NVARCHAR(10),CONVERT(DATETIME,yourData,104),20) 
0

Если формат "дд.мм.гггг". Следуйте инструкциям.

  1. Добавить столбец

    ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATETIME/DATE; 
    
  2. Обновить колонку с датой значения из старой колонки

    UPDATE TABLE_NAME SET COLUMN_NAME=CONVERT(DATETIME,V_DATE_COL,104); 
    
  3. Удалить Старый Column

    ALTER TABLE TABLE_NAME DROP COLUMN V_DATE_COL 
    
  4. Rename Новая колонка

    EXEC sp_RENAME 'TABLE_NAME.COLUMN_NAME' , 'NewColumnName', 'COLUMN'