Изменить Varchar на Time type - PullRequest
1 голос
/ 27 июня 2011

В таблице у меня есть поле (Varchar) с именем CallTime.

Включает время, например, 8:00, 8:40, 10:00

Я хочу изменить тип поля на Время и обновить формат времени. Как это можно сделать?

Спасибо

Ответы [ 4 ]

1 голос
/ 27 июня 2011
UPDATE table_name SET CallTimeNew = DATE_FORMAT(STR_TO_DATE(CallTime,'%l:%i %p'), '%H:%i:%s');

или просто измените тип столбца, как предложил другой пользователь.

1 голос
/ 27 июня 2011

Я хотел бы сделать это в следующих шагах:

  • Создать столбец типа Time с именем CallTimeNew;
  • Написать скрипт, который принимает значения из CallTime, преобразовать его во время, используяmktime() и друзей и запишите его в CallTimeNew;
  • Удалите столбец CallTime и переименуйте столбец CallTimeNew в CallTime
0 голосов
/ 27 июня 2011
ALTER TABLE [TableName]
ALTER COLUMN Time DATETIME NULL;
0 голосов
/ 27 июня 2011

В MySQL я мог просто изменить тип поля с varchar на время, и он автоматически изменил формат с 13:30 на 01:30: 00.

В противном случае вы можете написать небольшой PHP-скрипт длязацикливать все времена, форматировать их с датой и strtotime, а затем вставить их обратно в правильный формат, прежде чем переключать типы полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...