2013-07-01 2 views
0

У меня есть база данных, которую я загрузил с помощью python with time.time(), что приводит к времени в секундах, которое выглядит как 1370449004.766663 и так далее.Преобразование mysql varchar в float или в эпоху?

Они находятся в столбце с именем time типа varchar.

Как преобразовать эту колонку, чтобы использовать команду from_unixtime(), обсуждаемую here.

Когда я сделать это сейчас:

SELECT UNIX_TIMESTAMP(time) from table; 

выход 0. где время столбец VARCHAR с выходом time.time из моей команды питона.

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

Любые предложения?

+0

поплавка? если вы удалите точку, это просто счет микросезонов, нет? Тогда ваша точность будет намного лучше, вычисления быстрее и неприятнее - меньше – akostadinov

ответ

1

unix_timestamp() принимает дату ввода. Не имеет смысла называть его varchar, как 1370449004.766663.

Чтобы преобразовать varchar столбец в float колонке, вы можете:

alter table YourTable add FloatColumn float; 
update YourTable set FloatColumn= convert(time, float); 

Это даже лучше, идея хранить дату в виде datetime колонки:

alter table YourTable add DateTimeColumn datetime; 
update YourTable set DateTimeColumn = from_unixtime(convert(time, float)); 
+0

Можете ли вы добавить точки с запятой в эти строки. Новое в sql. Спасибо – Cripto

+0

Просто попробовал обновление, и он говорит, что у вас есть ошибка – Cripto

+0

Чтобы помочь нам дать полезные отзывы, будьте как можно более конкретны. Попробуйте воспроизвести ошибку на sqlfiddle.com или, по крайней мере, опубликовать точное сообщение об ошибке. – Andomar

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