如何最好地存储时间范围,如周二10-11am?

时间:2012-03-08 06:14:40

标签: mysql

这不是一个,不仅仅是一个特定的星期二,所以我不会使用时间戳。

我的意思是“每周二上午10点到11点”。存储它的最佳方法是什么,以便在我的(Delphi)应用程序中检查当前时间是否在这些允许的时间之间?

2 个答案:

答案 0 :(得分:2)

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

object_time_range
    id
    object_id
    day
    hour_start
    hour_end
    frequency_id

- 更新 -

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

object_time_range
    id
    object_id
    day_id
    time_start
    time_end
    frequency_id

答案 1 :(得分:-1)

将变量存储为datetime或timestamp,

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

date_format and date_add

获取属于所需日期和时间的行

如果将其存储为文本,则非常困难。

E.g获取过去一天的行

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()  

检查date_add功能

相关问题