Sql查询在Month列的where条件下没有返回任何行



我有下面的表'FACT',其中month_title列使用to_char(some_date, 'Month')填充,因此month_title列的数据类型是VARCHAR2(36 BYTE)。

tbody> <<tr>6月2周三6月2周三周一
INSTR_ID TRAINER_ID LESSON_DAY MONTH_TITLE total_registered
INS100T101 td>
INS100T101 td>可能1
INS100T101
INS100T101可能3
INS100T102 td>可能3
INS100T102周五可能1
INS100T102周六可能1
INS100T107可能1
INS200T103周六6月3

处理日期时,应该始终使用数据库特定的date数据类型。这样,你就不会遇到这些问题了。

是的,问题是你的to_char呼叫。

如果你使用"Month"格式掩码,Oracle将返回一个固定的宽度,空白填充值。所以表格中的值不是May,而是May"y"后面有6个空格。您几乎肯定想要to_char( some_date, 'fmMonth' ),它删除尾随空格(或者您可以trunc( to_char( some_date, 'Month' )))。

相关内容

  • 没有找到相关文章

最新更新