gpt4 book ai didi

mysql - 在大于 TIME 范围的 MySQL 中存储持续时间的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-29 00:21:52 26 4
gpt4 key购买 nike

我需要一种在数据库字段中存储持续时间的方法。我正在构建一个网站,客户应该能够在其中选择他们希望广告从特定开始日期显示多长时间。

我曾考虑过使用 TIME,但它的最大值为“838:59:59”,大约需要 34 天。客户可能希望广告存在的时间更长。

那么处理这个问题的最佳方法是什么?只是一个非常大的 INT?

最佳答案

如果您打算有一列用于开始时间和一列用于持续时间,我认为您可以在几秒钟内存储它。所以,我假设你会有这样的东西;

+-----------+--------------------------+------------------+
| advert_id | start_time | duration_seconds |
+-----------+--------------------------+------------------+
| 2342342 |'2012-11-12 10:23:03' | 86400 |
+-----------+--------------------------+------------------+

(为了示例,我们将此表称为adverts)

  1. advert_id - 指向您的广告的关键字
  2. start_time - 广告应该开始的时间(数据类型 - TIMESTAMP)
  3. duration_seconds - 广告应该“有效”的时间(以秒为单位)(INTEGER(11)

    SELECT TIME_TO_SEC(timediff(now(),start_time)) as 'time_difference_in_seconds_since_advert_started' FROM adverts;

如果您只想获取尚未过期的广告,您将运行这样的查询;

SELECT * FROM  `adverts` WHERE TIME_TO_SEC(timediff(now(),start_time))<=`duration_seconds`;

如果我要使用“持续时间”字段,这是我会采用的一种方式。

关于mysql - 在大于 TIME 范围的 MySQL 中存储持续时间的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com