在当月抓取行时出错

时间:2017-07-14 16:51:15

标签: sql oracle

我试图抓住当前月份的所有行。就目前而言,由于我甚至无法正常工作,因此我只是编写了一个月的编码。

我执行了以下操作将我的日期转换为格式" DD-MON-YYYY'

SELECT "MOLECULE_NAME", to_date("FLASK_START_DATE", 'MM/DD/YYYY')
FROM EXCEL_SCHEDULE_IMPORT

这给了我想要的正确日期输出。但是现在,当我尝试使用以下代码获取当前月份的所有日期时,它是不行的。收到错误"无效的号码"

SELECT "MOLECULE_NAME", to_date("FLASK_START_DATE", 'MM/DD/YYYY')
FROM EXCEL_SCHEDULE_IMPORT
WHERE to_char("FLASK_START_DATE",'Mon-YYYY')='JUN-2017';

任何帮助将不胜感激。我想最终根据系统时钟抓取当前月份的所有值。所以,如果你能做到这一点......那会很酷。

编辑:结果显示日期列中的某些日期有不正确的数据,例如" Molecule"或"序列"。所以用词而不是约会。有没有办法忽略这些价值观?

1 个答案:

答案 0 :(得分:0)

如果您想要当月的数据,为什么不这样做:

WHERE "FLASK_START_DATE" like TO_CHAR(sysdate, 'MM') || '/%/' + TO_CHAR(sydate, 'YYYY')

或者:

WHERE "FLASK_START_DATE" like '06/%/2017'

为什么要在字符串和日期转换中来回转换?此外,您应该将日期存储在正确的数据类型中 - 称为DATE