SQL将Int转换为时间

时间:2011-06-02 06:38:03

标签: sql time int

我正在尝试将数据从文本文件导入SQL数据库。该文件不使用TAB来分隔字段。我在导入时遇到的问题是,当我编写以Int作为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到Time?

1 个答案:

答案 0 :(得分:0)

以下是将int 0422转换为time值的方法:

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

如果没有看到您的导入查询,就无法说明如何实际应用它。