我已更新SAD_PB_CAS_STATDT
字段的值等于sysdate,即今天的日期。现在的问题是,当我使用SAD_PB_CAS_STATDT = sysdate
查询某些内容时,它不会返回任何内容。
请参阅下面的我的sql代码:
SELECT EMPLID, ACAD_CAREER, STDNT_CAR_NBR, ADM_APPL_NBR, APPL_PROG_NBR,
SAD_PB_CAS_STATUS, SAD_PB_CAS_STATDT
FROM PS_SAD_PB_CAS
WHERE SAD_PB_CAS_STATUS IN ('ASG', 'USD')
AND SAD_PB_CAS_STATDT = sysdate;
我猜它与sysdate
的返回类型有关?它会返回带日期和时间的东西吗?如果能够在条件中使用sysdate
提取查询,我将不胜感激。
答案 0 :(得分:2)
正如其他人所提到的,在发布问题之前,请务必查看文档(包括Stack Overflow)。有几种方法可以使您的查询工作,但我建议使用以下WHERE
子句:
WHERE
SAD_PB_CAS_STATUS IN ('ASG', 'USD') AND
SAD_PB_CAS_STATDT >= CURDATE() AND -- today at midnight
SAD_PB_CAS_STATDT < CURDATE() + INTERVAL 1 DAY; -- tomorrow at midnight
这种方法优于仅将SAD_PB_CAS_STADT
列转换为日期的原因是,上述内容允许在列上使用索引(如果存在)。