mysql - 使用系统日期的 SQL

标签 mysql sql

我已将 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/

相关文章:

php - 如何使用 SOAP 进行身份验证?

php - 不相关的SQL表的大小是否会影响彼此的性能

SQL:更新记录而不丢失其内容

mysql - 在现有列中添加一个数字

mysql - If else on WHERE 子句

mysql - 我们可以优化这个 SQL 查询吗?

mysql - 多重不同在 Mysql 中不起作用

mysql - 在旧版本的mysql中,我们可以使用WITH语句的替代方案是什么?

c# - LINQ:将 SQL WITH 子句转换为 LINQ 和 Entity Framework

asp.net - 无效的列名 : SQL/ASP. NET