gpt4 book ai didi

mysql - 根据列的值更改 DATE_ADD 的单位

转载 作者:行者123 更新时间:2023-11-28 23:59:28 25 4
gpt4 key购买 nike

我有一个存储datetime 操作的表是last_run,我还有一个frequency 列,这是频率,在个月,该操作应该运行。

+----+---------------------+-----------+
| id | last_run | frequency |
+----+---------------------+-----------+
| 1 | 2014-05-22 00:00:00 | 12 |
|----|---------------------|-----------|
| 2 | 2015-05-15 00:00:00 | 0.25 |
+----+---------------------+-----------+

我正在使用以下查询来获取操作接下来应该运行的日期:

SELECT DATE_ADD(last_run, INTERVAL frequency MONTH) AS next_run FROM table;

由于 frequency 值,这无法在第二条记录上返回正确的 next_run 日期。

是否可以添加一个条件,使得当frequency = 0.25

  • frequency 变为 7
  • MONTH 变为 DAY

这是我目前正在重构的旧系统的一部分。存储间隔类型 (DAY/MONTH/YEAR) 并将其传递给查询会更好,还是有一种方法可以将上述条件添加到查询中?

最佳答案

我认为你必须使用大的 case 语句。像这样:

select (case when frequency >= 1
then DATE_ADD(last_run, INTERVAL frequency MONTH)
when frequency < 1
then DATE_ADD(last_run, INTERVAL frequency*28 DAY)
ELSE DATE_ADD(last_run, INTERVAL 1 MONTH) --Adding for may be null values
end)

关于mysql - 根据列的值更改 DATE_ADD 的单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30400357/

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