存放营业时间一整天(24小时)

时间:2011-08-30 13:17:54

标签: database time localization

我正在编写一个程序,用于存储数据库time字段中商店的营业时间,并且想知道正确的时间范围是什么,如果我想在特定的一天表示该商店是开放的24小时。是0:00-23:59吗?或者是0:01-0:00?两种格式都有一分钟的差距,商店关闭。是0:00-0:00? 当一天开始时,是否存在与语言环境相关的差异?

3 个答案:

答案 0 :(得分:1)

我见过商店在早上和晚上营业的用例,但在下午营业时没有。

无论商店是否有多班次,我都会有一个30分钟间隔的小时表(您也可以间隔1小时或15分钟间隔)存储并使用它来标记商店开放的任何时间或者关闭。

答案 1 :(得分:0)

根据您的数据库引擎,这可能会达到几秒钟,因此您的商店将在00:00:00到23:59:59之间打开。那么1秒重叠也不算太差。

在处理这个问题时,最重要的是要记住一些商店将在24小时内营业,但运营会在特定时间开始。例如,上午6点,第二天早上6点。

存储它的一种方法是将打开时间设置为某种类型的时间间隔,也许只是打开时间后的秒数。这样,你可以24小时拥有84600。

答案 2 :(得分:0)

条件本身并不真正适合您的存储概念,但由于您已经完成了许多无效值(结束< start,end == start),因此提名任何一个都没有错他们。因此,例如,使用0:00 - 0:00并在心理上决定结束>开始,因此这必须代表一整天。 0:00 - 23:59有合法的含义所以我会避免那个。

另一种选择是使用开始时间+长度而不是两次。我想我会选择这个首选。

我认为开始时无关紧要;如果您保持数据存储区和表示层独立,那么您可以在表示层中进行本地化(即打印时间时),并且数据存储区在开始日期时不关心(因此请使用UTC或存储时区)。

关于实施的注意事项:你没有办法让商店每天开两次(例如午餐时间)或更多。