mySQL - 分钟数据丢失了几分钟

时间:2011-03-23 20:09:44

标签: mysql import

我有一个带有cityname表和湿度表的数据库。详情如下:

'cityname' has 2 columns:  
-city_ID <- integer and primary key that increments automatically  
-city_full_name <- character name i.e. boston, toronto, new york city etc...  

'citymoisture' has 7 columns:  
-city_ID <- tied to the city_ID field via a Foreign Key  
-date  
-time  
-open  
-high  
-low  
-close  

我使用以下命令将数据上传到数据库

mysql> LOAD DATA INFILE     'Boston 1 Minute Moisture.txt'
    -> INTO TABLE           moisture
    -> FIELDS TERMINATED BY ','
    -> LINES TERMINATED BY '\n'
    -> IGNORE 1 LINES
    -> (@date, @time, open, high, low, close)
    -> SET                  city_id=4,
    ->                       date=STR_TO_DATE(@date, '%m/%d/%Y'),
    ->                       time=STR_TO_DATE(@time, '%h:%i:%s %p');

我发现的问题是数据存在差距。当分钟周期到来时,传感器有时无法保存,因此有两段连续行之间的时间大于1分钟。我想确定这些差距并插入我自己的数据,即理想情况下是前一分钟数据的副本。

数据文件的示例输出:

Date, Time, Open, High, Low, Close  
1/4/1999,9:31:00 AM,0.943,0.943,0.943,0.943  
1/4/1999,9:32:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:33:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:35:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:36:00 AM,0.943,0.943,0.943,0.943

在此示例中看到缺少9:34的数据。我想要做的是找到一种方法来识别这种情况并进行更改。我想我可能只是将前一分钟的数据复制到缺失的分钟行中。

如果时间[1] - 时间[0]&gt; 1然后在其间插入前一行。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

创建一个包含所有分钟数的表(1440行),并在加载数据表后对数据表执行左外连接。任何null的行都缺少数据。

不要忘记索引。