You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用SYSDATE查询commandes表无结果?需获取2020年数据

问题原因及解决方法

为什么返回无结果?

你的SQL查询条件是让datecommande的年份等于当前SYSDATE的年份(2024年),同时月份匹配当前系统时间的月份,但你实际要查询的是2020年的数据,年份完全不匹配,自然找不到符合条件的记录,所以返回空结果。

原查询的核心逻辑是:

SELECT *
FROM commandes
WHERE EXTRACT(MONTH FROM datecommande) = EXTRACT(MONTH FROM SYSDATE)
  AND EXTRACT(YEAR FROM datecommande) = EXTRACT(YEAR FROM SYSDATE); 

这里EXTRACT(YEAR FROM SYSDATE)取到的是2024,和你要查询的2020年不相等,因此没有匹配项。

修正后的查询

如果你要查询2020年全年的数据,可以直接指定年份:

SELECT *
FROM commandes
WHERE EXTRACT(YEAR FROM datecommande) = 2020;

如果要查询2020年某个特定月份(比如10月)的数据:

SELECT *
FROM commandes
WHERE EXTRACT(MONTH FROM datecommande) = 10
  AND EXTRACT(YEAR FROM datecommande) = 2020;

也可以用日期范围的写法,若datecommande字段有索引,这种写法性能更优:

SELECT *
FROM commandes
WHERE datecommande BETWEEN TO_DATE('2020-01-01', 'YYYY-MM-DD') 
                       AND TO_DATE('2020-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS');

内容的提问来源于stack exchange,提问作者PRAIIIZ Fou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:07:05