Oracle语法问题:

怎么查询当月、当日的数据?  

image.png

image.png

FineReport rbk333 发布于 2023-4-6 15:14 (编辑于 2023-4-6 16:14)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-4-6 15:16(编辑于 2023-4-6 15:19)

where createdate>=to_date('2023-04-01','yyyy-mm-dd')

and createdate<to_date('2023-05-01','yyyy-mm-dd')

看你写的语法限制没有错的。

image.png

  • rbk333 rbk333(提问者) 会报错: ORA-01722: 无效数字 ORA-02063: 紧接着 line (起自 OA_REAL)
    2023-04-06 16:17 
  • CD20160914 CD20160914 回复 rbk333(提问者) 不知道你的数据类型。。你检查一下你的数据类型是什么,是不是真正的时间
    2023-04-06 16:21 
  • rbk333 rbk333(提问者) 回复 CD20160914 好像不是日期格式。 那咋写啊。。。
    2023-04-06 16:22 
  • CD20160914 CD20160914 回复 rbk333(提问者) 不是日期格式,你直接substr(时间字段,1,7)
    2023-04-06 16:23 
  • 帆软用户8MIpjlHcqm 帆软用户8MIpjlHcqm 回复 rbk333(提问者) 如果不是日期类型,那应该是字符串类型,试试先to_date()再to_char()
    2023-04-06 16:30 
最佳回答
0
YmengLv5中级互助
发布于2023-4-6 15:28

限制当月数据需要把AND条件跟OR条件括起来

image.png

求当日的把TO_CHAR(CREATEDATE,'YYYY-MM')=TO_CHAR(SYSDATE,'YYYY-MM')改成TO_CHAR(CREATEDATE,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD')

  • rbk333 rbk333(提问者) 放前面了。 会报:ORA-01722: 无效数字 ORA-02063: 紧接着 line (起自 OA_REAL)
    2023-04-06 16:15 
  • Ymeng Ymeng 回复 rbk333(提问者) 检查下CREATEDATE字段类型是字符串还是日期类型
    2023-04-06 16:22 
  • rbk333 rbk333(提问者) 回复 Ymeng 是CHAR(10 BYTE)
    2023-04-06 16:30 
  • Ymeng Ymeng 回复 rbk333(提问者) 那当月条件应该改成SUBSTR(CREATEDATE,1,7)=TO_CHAR(SYSDATE,\'YYYY-MM\'),当日就是:CREATEDATE=TO_CHAR(SYSDATE,\'YYYY-MM-DD\')
    2023-04-06 16:32 
  • rbk333 rbk333(提问者) 回复 Ymeng 谢谢
    2023-04-06 16:33 
  • 3关注人数
  • 303浏览人数
  • 最后回答于:2023-4-6 16:14
    请选择关闭问题的原因
    确定 取消
    返回顶部