我有一个表名notis。属性是nomborFail(主键varchar),tarikhNotis2(日期),tarikhNotis3(日期)和status(varchar)。我想显示数据,有日期在更多tarikhNotis2和tarikhNotis3,也显示数据超过2,如果tarikhNotis3是NULL。
我能做到吗?
SELECT * FROM notis WHERE ((CURRENT_DATE() > tarikhNotis2 AND tarikhNotis3=NULL) OR (CURRENT_DATE() > tarikhNotis2 AND CURRENT_DATE() < tarikhNotis3)) AND status='BELUM SELESAI'
字符串
1条答案
按热度按时间siotufzp1#
当然,看起来您希望根据涉及tarikhNotis2和tarikhNotis3日期字段的特定条件从notis表中检索数据。您正在寻找日期之间具有某种关系的记录,并且还考虑了状态字段。
但是,在您提供的查询中有一个小问题。tarikhNotis3=NULL的比较不会像预期的那样工作。在SQL中,您应该使用tarikhNotis3 IS NULL来检查NULL值。
下面是一个更新的SQL查询,以反映您的需求
字符串
此查询从notis表中获取记录,其中:
如果tarikhNotis3为NULL,则检查当前日期是否大于tarikhNotis2。如果tarikhNotis3不为NULL,则检查当前日期是否介于tarikhNotis2和tarikhNotis3之间。此外,它会根据状态字段“BELUM SELESAI”筛选这些记录。请确保您的数据库系统支持CURRENT_DATE函数,并根据数据库的日期处理约定调整与日期的比较(如果需要