MySQL WHERE子句日期算术混淆

时间:2019-11-26 14:17:27

标签: mysql where-clause

有人在下面看到过WHERE语法:

SELECT columns
FROM table
WHERE DATE(CONVERT_TZ(ifnull(expr1,expr2)".$dts.",'-05:00',table.timezone)) = CURDATE() + INTERVAL '10' DAY

程序会在销售日期的前10天将通知发送到邮件列表(天数可以更改)。我正在记录由以前的开发人员编写的查询和代码,这些开发人员没有留下任何注释,并且被困在特定的WHERE子句行中。

我知道在等号左边,查询解释为,如果expr1不为null,则选择expr1,添加夏时制($ dts),将结果值调整为时区(从EST到特定时区) ),然后将转换后的时区更改为日期格式。

大小相等的右边带有当前日期,并加上10天。

所以简化的查询有点像(我认为):

'2019-12-05' = CURDATE() + INTERVAL '10' DAY 

等号的左侧是替换右侧还是在右侧添加内容?还是我读错了?到底在做什么通常,我在WHERE子句中看到将表列设置为特定值,但没有将显式日期设置为某些内容。

0 个答案:

没有答案