Mysql 如何最好地存储时间范围,如周二上午10-11点?

Mysql 如何最好地存储时间范围,如周二上午10-11点?,mysql,Mysql,这不是一个星期二,不仅仅是一个星期二,所以我不会用时间戳 我的意思是每周二上午10点到11点。如果当前时间在允许的时间之间,那么存储该时间的最佳方法是什么,以便于从我的Delphi应用程序中检查?听起来时间范围只是您使用的任何主要对象的一个属性,因此您可以添加一个单独的表来存储时间范围数据,例如: object_time_range id object_id day hour_start hour_end frequency_id -更新- 事后

这不是一个星期二,不仅仅是一个星期二,所以我不会用时间戳


我的意思是每周二上午10点到11点。如果当前时间在允许的时间之间,那么存储该时间的最佳方法是什么,以便于从我的Delphi应用程序中检查?

听起来时间范围只是您使用的任何主要对象的一个属性,因此您可以添加一个单独的表来存储时间范围数据,例如:

object_time_range
    id
    object_id
    day
    hour_start
    hour_end
    frequency_id
-更新-

事后看来,我可能会把时间从列名中抽象出来,以利于时间,以防万一你需要考虑其他的时间框架。而且day应该是day_id,即使它是一个静态列表,在这种情况下我总是喜欢使用int

object_time_range
    id
    object_id
    day_id
    time_start
    time_end
    frequency_id

听起来时间范围只是您正在处理的任何主要对象的一个属性,因此您可以添加一个单独的表来存储时间范围数据,例如:

object_time_range
    id
    object_id
    day
    hour_start
    hour_end
    frequency_id
-更新-

事后看来,我可能会把时间从列名中抽象出来,以利于时间,以防万一你需要考虑其他的时间框架。而且day应该是day_id,即使它是一个静态列表,在这种情况下我总是喜欢使用int

object_time_range
    id
    object_id
    day_id
    time_start
    time_end
    frequency_id

将变量存储为datetime或timestamp

您可以使用mysql日期函数,例如

date_format and date_add
获取在所需日期和时间内的行

如果您将其存储为文本,这将非常困难

例如,获取过去一天的记录

select * from tableName 
where dateField  > date_add(now(),interval -1 day) and
dateField < now()  

rows for the past one Week

select * from tableName 
where dateField  > date_add(now(),interval -1 week) and
dateField < now()  

选中日期\u添加函数

将变量存储为日期时间或时间戳

您可以使用mysql日期函数,例如

date_format and date_add
获取在所需日期和时间内的行

如果您将其存储为文本,这将非常困难

例如,获取过去一天的记录

select * from tableName 
where dateField  > date_add(now(),interval -1 day) and
dateField < now()  

rows for the past one Week

select * from tableName 
where dateField  > date_add(now(),interval -1 week) and
dateField < now()  

检查日期\u添加功能

此帮助?如果没有,请在OP中添加更多信息,以便我能得到更好的想法。@Mawg:很高兴听到,我不太确定你要做什么。我更新了一些笔记。这有帮助吗?如果没有,请在OP中添加更多信息,以便我能得到更好的想法。@Mawg:很高兴听到,我不太确定你要做什么。我更新了一些笔记。