当我尝试以正确的格式获取数据库数据时遇到很多问题。
我正在寻找按天按列打印数据库输出的方法。
我的数据库有两列,一列带有timestamp
格式如下YYYY-MM-DD H:M
另一列包含与速度相关的数据。
我需要按天将速度数据拆分为列。
或多或少,我的数据库是这样的(每天有288条数据):
Timestamp | Speed
2014-05-01 00:03:00 | 328.71
2014-05-01 00:18:00 | 331.31
2014-05-01 00:33:00 | 193.83
2014-05-02 00:03:00 | 321.21
2014-05-02 00:18:00 | 290.39
2014-05-02 00:33:00 | 283.43
我正在寻找的是:
Hour | 2014-05-01 | 2014-05-02
00:03:00 | 328.71 | 321.21
00:18:00 | 331.31 | 290.39
00:33:00 | 193.83 | 283.43
首先,我尝试以静态的方式进行,但是当我得到它时,我会做动态的。
我所做的查询是
SELECT
(CASE WHEN Timestamp>='2014-05-01' AND Timestamp<='2014-05-03'
THEN date_format(Timestamp,'%H:%i') ELSE 0 END) AS 'Hour',
(CASE WHEN Timestamp>='2014-05-01' AND Timestamp<='2014-05-02'
THEN speed ELSE 0 END) AS '2014-05-01',
(CASE WHEN Timestamp>='2014-05-02' AND Timestamp<='2014-05-03'
THEN velocidad ELSE 0 END) AS '2014-05-02'
FROM `db_speed`
WHERE Timestamp>='2014-05-01' AND Timestamp<='2014-05-10
通过这个查询,我得到这样的结构:
Hour | 2014-05-01 | 2014-05-02
00:03:00 | 328.71 | 0
00:18:00 | 331.31 | 0
00:33:00 | 193.83 | 0
00:03:00 | 0 | 321.21
00:18:00 | 0 | 290.39
00:33:00 | 0 | 283.43