gpt4 book ai didi

mysql - 如何使用日期时间字段作为期间范围?有其他选择吗?

转载 作者:行者123 更新时间:2023-11-29 07:00:11 25 4
gpt4 key购买 nike

我正在写一些关于我数据库中某些事件的字段,我想我可以这样做:

rangeType (varchar) (may be: daily, weekly, monthly, yearly)
rangeStart (datetime)
rangeEnd (datetime)

我想在NOW()时间范围内匹配一条记录:

  • rangeType'yearly' 时,如果 NOW() 的日期介于 的月+日之间rangeStartrangeEnd

  • rangeType'monthly' 如果 NOW() 介于 rangeStart 之间和 rangeEnd

  • rangeType'weekly' 如果 NOW() 是....

  • rangeType'daily' 如果 NOW() 的时间是......

我觉得这里weekly需要特殊处理,整体结构没那么灵活...

那我需要更多的字段!但我想要一些易于阅读和维护的东西...使用 MySQL 执行此操作的最佳方法是什么?是否有一些函数允许我在不编写和维护 SQL 行的情况下执行此操作?

ISO8601周期规范呢?

最佳答案

是这样的吗?

SELECT ...
WHERE CASE rangeType
WHEN 'daily' THEN TIME( NOW()) BETWEEN TIME( rangeStart) AND TIME( rangeEnd)
WHEN 'weekly' THEN DAYOFWEEK( NOW()) BETWEEN DAYOFWEEK( rangeStart) AND DAYOFWEEK( rangeEnd)
WHEN 'monthly' THEN DAYOFMONTH(NOW()) BETWEEN DAYOFMONTH(rangeStart) AND DAYOFMONTH(rangeEnd)
WHEN 'yearly' THEN DAYOFYEAR( NOW()) BETWEEN DAYOFYEAR( rangeStart) AND DAYOFYEAR( rangeEnd)
END

关于mysql - 如何使用日期时间字段作为期间范围?有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637226/

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