首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL存储时间条件

MySQL存储时间条件
EN

Stack Overflow用户
提问于 2015-04-23 18:55:17
回答 2查看 59关注 0票数 1

我目前正在一个平台上工作,我想提供一些租金。

我想将所有可能的出租类型存储在数据库中,所以我不需要在代码中处理逻辑。

基本上,我想提供以下租赁时间:

  • 1天
  • 7天
  • 5天/需要是平日(星期一至星期五)
  • 2天/周末(周六至周日)
  • 一个月/从一个月的十四号到下一个月的十三号

在几天的时间里,我想在几分钟内存储数据,这是很容易理解的。

如果有一个工作日的条件,我想使用DAYOFWEEK指数,所以我可以定义5天,第一天的租金需要有索引2是星期一,对于周末我可以定义租用日需要有索引6,也就是星期六。

代码语言:javascript
复制
rental_type_id | rental_time_in_minutes | rental_label | rental_start_day_indexes

一天就像

代码语言:javascript
复制
1 | 1440 | 1 day | 1,2,3,4,5,6,7

7天

代码语言:javascript
复制
2 | 10080 | 7 days | 1,2,3,4,5,6,7

5天

代码语言:javascript
复制
3 | 7200 | Weekdays | 2,3,4,5,6

等。

这是一种方式,还是我应该在几天内储存出租时间?

任何帮助,建议,批评或欢呼都是有帮助的!

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-04-23 19:05:42

根据您的使用方式,将租赁时间存储在分钟内可能会导致DST周围的问题,因为您一天中有23或25个小时。

同时,将索引存储为逗号分隔的列表也会导致问题。我会做一个映射表。该列不是正常形式,很难查询。

老实说,我会为不同的时间做不同的桌子。

票数 0
EN

Stack Overflow用户

发布于 2015-04-23 19:48:13

我会以秒为单位存储这些持续时间。因为它使整个事情更容易被质疑和更容易理解。假设你有那些租期。表的持续时间:

代码语言:javascript
复制
d_id  type     duration
1     1 day       01
2     3 days      03
3     7 days      07

我建议你用正常的时间戳来出租。我会存储开始和结束时间戳。假设你有下表。

在本例中,我使用的是天而不是时间戳,只是为了更容易地显示。假设今天是第三天。餐桌租金:

代码语言:javascript
复制
customer  start   end
Bob         02      05
Joe         10      11
Ian         03      04

假设您希望获得当前所有的活动租金(Bob & Ian)。你可以这样把它拿来:

代码语言:javascript
复制
SELECT * FROM `rentals` WHERE `start`<3 AND 3<`end`

通过使用以下查询,您可以找到租赁类型"1天“(Ian)的所有内容:

代码语言:javascript
复制
SELECT * FROM `rentals`,`durations` WHERE `end`-`start`=`duration` and `d_id`=1

使用时间戳的优点是您可以非常精确地设置租赁开始和结束时间。您可以检查客户返回对象的时间和时间已经太晚了。这样你就可以很容易地计算出确切的额外费用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29832042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档