下面是我的表结构
ID DATE1 DATE2 DATE3
1 2018-05-01 2018-05-01 2018-11-11
2 2018-05-01 2018-10-01 2018-05-01
3 2018-05-01 2018-05-01 2018-05-01
实际上我想选择三个日期中的任何一个都大于now()的记录
like-(DATE1, DATE2, DATE3) > NOW()::DATE
任何人都可以让我知道在where子句中如何实现这一目标 而不是像
SELECT *
FROM table1
where DATE1 > NOW()::DATE
AND DATE2 > NOW()::DATE
AND DATE3 > NOW::DATE
实际上,我将所有日期列与单个值进行比较,因此只想知道还有什么其他有效的方法可以用来代替为每个列添加条件。
答案 0 :(得分:1)
我会使用GREATEST()
:
SELECT t1.*
FROM table1 t1
WHERE GREATEST(date1, date2, date) > CURRENT_DATE;
我认为CURRENT_DATE
比转换NOW()
更有意义。