MySQL中的存储和查询时间

MySQL中的存储和查询时间,mysql,sql,Mysql,Sql,我正在为userEvent数据设计一个数据库。我将存储他们的跑步事件和时间。例如,5:00时1500米或30:20时10000米 数据库将通过用户界面接收用户数据,用户界面上有4个下拉菜单,分别为小时分钟秒和毫秒 我需要在此数据库上执行的查询之一是查找运行特定事件比运行特定时间更快的所有用户。举个例子,所有1500米跑者都在4:30以下 我是SQL新手,但我并不真正了解这个查询。因为5:00分钟1500米的时间将作为0 | 5 | 0 | 0存储在数据库中,持续数小时分秒和毫秒,但我需要找到所有

我正在为userEvent数据设计一个数据库。我将存储他们的跑步事件和时间。例如,5:00时1500米或30:20时10000米

数据库将通过用户界面接收用户数据,用户界面上有4个下拉菜单,分别为
小时
分钟
毫秒

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

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


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

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

SELECT * FROM table1 WHERE
event = 'event1'
AND hours*3600+minutes*60+seconds+milliseconds/1000 <
0*3600+4*60+30+0/1000 ;
从表1中选择*,其中
事件='event1'
和小时*3600+分钟*60+秒+毫秒/1000<
0*3600+4*60+30+0/1000 ;


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

最佳做法是将其转换为最低精度

示例以毫秒为单位存储所有内容

1分钟=60000


因此,如果有人要求不要将这些值存储在单独的列中,那么应该如何存储它们?0:5:0:0?您使用的是什么版本的MySQL?啊,所以将其存储为毫秒,然后查询其是否为较低或较高版本。这很有道理,谢谢你。我能谈谈5小时马拉松比赛的问题吗?这需要很多毫秒。一个整数中可以有多少个整数有限制吗?5小时在ms中是18000000 ms(),而一个INT在mySql中可以存储高达2147483647()的值