我试图通过以下查询找出一周中某一天的平均电量:
SELECT avg(volume)
FROM v_nem_rm16
WHERE to_char(day, 'day') = 'monday';
其中v_nem_rm16是一个表和volume,day是它的列,我的查询返回null,无论我更改日期值'monday','tuesday',....
这个查询错了吗?
答案 0 :(得分:3)
实际上,“DAY”返回时右侧有填充空格。 如果使用'RTRIM',则可以避免使用空值。
SELECT avg(volume)
FROM v_nem_rm16
WHERE RTRIM(to_char(day, 'day')) = 'monday';
答案 1 :(得分:2)
我宁愿使用不同的日期格式to_char DAY依赖于nls依赖(例如你的软件在西班牙会失败)。 D返回数字,因此在您的情况下查询应该看起来像
SELECT avg(volume)
FROM v_nem_rm16
WHERE RTRIM(to_char(day, 'd')) = 1;