我已将 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
提取查询,我将不胜感激。
最佳答案
正如其他人提到的,在发布问题之前请务必检查文档(包括 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
列转换为日期相比,这种方法更受青睐的原因是,上述方法允许在该列上使用索引(如果存在)。
关于mysql - 使用系统日期的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49377279/