MySQL Case When (....., Interval 3 Day) 用于数字而不是日期?

MySQL Case When (....., Interval 3 Day) for numbers instead of dates?

我这里有两个问题 - 1) 我正在尝试创建一个显示日期的字段 - 例如 [30/05/2018] - 我只使用

DATE_FORMAT(SetDate1.Value, '%e')

,所以字段将是 [30],我希望这个新字段的结果与另一个日期字段的另一天进行比较,例如 [27/05/2018] - 字段是 [27],我想 MySQL 让我知道数字(30 和 27)是否相等或彼此相差 3 higher/lower。 我在下面尝试过,但是它在 mySQL 上不起作用,我不明白为什么……有什么想法吗?我需要它来告诉我 30/05/2018 是否只提取了 30 个,或者等于,或者比下一个字段中的数字高 3,或者比下一个字段中的数字低 3,只提取了月份中的第几天。 我的(不工作)尝试低于 -

,case when DATE_FORMAT(SetDate1.Value, '%e') >= (DATE_FORMAT(r.paydate, '%e'), - INTERVAL 3 DAY) then 'Rules Apply' else 'False' end as Rules

2) 我的第二个问题是一般情况下是否有数字的区间函数

如果我有一个包含数字的字段,例如 [4],我想将它与另一个字段进行比较,并突出显示下一个字段中的数字是否等于 4、比 4 大还是比 4 小, 是否有特定的 mySQL 功能?我试图搜索此内容,但一直找不到答案。

谢谢

对于您的第一个问题,您应该使用 day() 函数。逻辑是这样的:

abs(day(date1) - day(date2)) <= 3

同样的逻辑实际上也适用于数字(如果您将 day() 表达式替换为数字。