在MySQL中存储和查询时间

时间:2014-08-02 16:43:58

标签: mysql sql

我正在为userEvent数据设计一个数据库。我将存储他们的运行事件和时间。所以例如在5点1500米或30点20分到10000米。

数据库将通过用户界面接收用户数据,其中hours minutes secondsmilliseconds有4个选择下拉列表。

我需要在此数据库上执行的一个查询是查找比特定时间更快地运行特定事件的所有用户。例如,所有1500米跑步者在4:30以下。

我是SQL的新手,这个查询并不是真的来找我。因为5分钟1500米的时间将作为0 | 5 | 0 | 0存储在数据库中几小时的秒和毫秒,但我需要找到比0 | 4 | 30 | 0更快的所有速度。

存储和查询此userEvent数据的最佳方法是什么?谢谢!

2 个答案:

答案 0 :(得分:2)

最佳做法是使用转换为最低精度。

示例将所有内容存储在millisecons中。

1分钟= 60000。

所以如果有人要求< 2分钟只是查询时间< 120000;

如果您有现有数据,只需使用存储过程或ant语言将数据转换为毫秒。

希望它有效。

答案 1 :(得分:0)

假设您将数据拆分为不同的列,您可以这样做:

SELECT * FROM table1 WHERE
event = 'event1'
AND hours*3600+minutes*60+seconds+milliseconds/1000 <
0*3600+4*60+30+0/1000 ;

SQL FIDDLE HERE

但也许最好存储一个包含例如毫秒数的字段。