SQL конвертировать Int во время - PullRequest
0 голосов
/ 02 июня 2011

Я пытаюсь импортировать данные из текстового файла в базу данных SQL.Файл не использует TAB для разделения полей.Моя проблема при импорте заключалась в том, что когда я записываю время, которое задается как Int, оно полностью портится при импорте.

Часть текстового файла:

North   Felix   2011-07-01  0422    0.47    0012    0.69    2109    0.55    1311    1.44
North   Felix   2011-07-02  0459    0.43    0048    0.72    2140    0.55    1342    1.47
North   Felix   2011-07-03  0533    0.41    0123    0.75    2213    0.57    1412    1.46
North   Felix   2011-07-04  0605    0.41    0158    0.79    2244    0.59    1441    1.41

Мой результат запроса:

INSERT INTO `dbc`.`history_long` (`Region`,`Location`,`Date`,`LT1-time`,`LT1-height`,`HT1-time`,`HT1-height`,`LT2-time`,`LT2-height`,`HT2-time`,`HT2-height`) 
values ('North','Felix','2011:00:00','422:00:00','0.47','12:00:00','0.69','2109:00:00','0.55','1311:00:00','1.44'),
('North','Felix','2011:00:00','459:00:00','0.43','48:00:00','0.72','2140:00:00','0.55','1342:00:00','1.47'),
('North','Felix','2011:00:00','533:00:00','0.41','123:00:00','0.75','2213:00:00','0.57','1412:00:00','1.46'),
('North','Felix','2011:00:00','605:00:00','0.41','158:00:00','0.79','2244:00:00','0.59','1441:00:00','1.41'),

Проблема, например, в том, что время L2 становится 2109: 00: 00 в столбце времени.Есть ли способ преобразовать это из Int во время?

1 Ответ

0 голосов
/ 02 июня 2011

Вот как вы можете преобразовать int как 0422 в time значение:

SELECT CAST('00:00' AS time)
     + INTERVAL (@IntValue DIV 60) HOUR
     + INTERVAL (@IntValue % 60) MINUTE

Без просмотра вашего запроса на импорт невозможно сказать, как вы могли бы его применить.

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