2014-02-11 4 views
0

У меня есть таблица tLogin с полем dateAdded, установленным в VARCHAR. Данные в записи выглядит следующим образом:Как конфертировать из VARCHAR в DATE

2012-09-21 15:51:38 

Поскольку данные хранятся в виде VARCHAR не может выполнять вычисления даты на нем.

Я хочу исправить эту проблему, создав новое поле tempDate, которое установлено в DATE, и преобразует данные из dateAdded в поле tempDate. Как я могу скопировать все данные из dateAdded в tempDate? Я не против потерять часы, минуты и секунды при конвертации с dateAdded.

+0

Я пробовал рекомендацию, но никто из них не работал. Вот пример сообщения об ошибке: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «CONVERT» (VARCHAR (10), CONVERT (DATETIME, dateAdded), 120)) FROM tLogin T 'по строке 2 – SimonRH

ответ

1
update t set t.tempDate = cast(t.dateAdded as datetime) from tLogin t 

, как говорит г-н Джек, исходный код от меня:

select cast('2012-09-21 15:51:38' as datetime) 
+0

Вы также должны указать начальную поэтому он понимает, что, возможно, ему не нужна дополнительная колонка –

0

Пока дата/время оба находятся в поле VARCHAR, вы должны быть в состоянии просто использовать:

SELECT CONVERT(DATETIME, dateAdded) 
FROM tLogin 

Если вы хотите, чтобы лишить метку времени выключения, вы можете сделать:

SELECT CONVERT(DATE,CONVERT(VARCHAR(10),CONVERT(DATETIME,dateAdded),120)) 
FROM tLogin 

В качестве подтверждения:

UPDATE T 
SET tempDate = CONVERT(DATE,CONVERT(VARCHAR(10),CONVERT(DATETIME,dateAdded),120)) 
FROM tLogin T 
Смежные вопросы