varcher2 类型的时间字段的截取

Loren_SUN 2017-07-22 07:06:34
请问一下如果我需要查询最近7天的每天的数据总量。SQL怎么写?(时间字段是varcher2类型)
Oracle数据库
数据库中的时间字段是像这个样子的:20170722183000,就是年月日时分秒都在一起,最后需要截取只有年月日
...全文
317 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2017-07-25
  • 打赏
  • 举报
回复
where crdate >= to_char(sysdate - 7, 'yyyymmddhh24miss')
宋哥 2017-07-24
  • 打赏
  • 举报
回复
where crdate >= to_char(sysdate - 7, 'yyyymmdd') 这个更好
宋哥 2017-07-24
  • 打赏
  • 举报
回复
引用 6 楼 Bad_Milo_ 的回复:
where substr(crdate,0,8) >= to_char(sysdate - 7, 'yyyymmdd') 这样?
+1
Bad_Milo_ 2017-07-24
  • 打赏
  • 举报
回复
where substr(crdate,0,8) >= to_char(sysdate - 7, 'yyyymmdd') 这样?
yan_jg 2017-07-24
  • 打赏
  • 举报
回复
with a as( --目标表a select sysdate-9 at from dual union all --不在一周内的时间 select sysdate-10 from dual union all select sysdate-6 at from dual union all --在一周内的时间 select sysdate-6 from dual union all select sysdate-5 from dual union all select sysdate-4 from dual union all select sysdate-3 from dual union all select sysdate-3 from dual union all select sysdate-3 from dual union all select sysdate-2 from dual union all select sysdate-1 from dual union all select sysdate from dual ) select bt as "时间",count(1) as "产生记录条数" from a,(select to_char(sysdate-level+1,'yyyy-MM-dd') bt from dual connect by level <= 7) b where to_char(a.at,'yyyy-MM-dd') = b.bt group by bt;
  • 打赏
  • 举报
回复
把时间先截取出来 TO_DATE(LPAD(PP,8),YYYY-MM-DD)
卖水果的net 2017-07-23
  • 打赏
  • 举报
回复
where crdate >= to_char(sysdate - 7, 'yyyymmddhh24miss') 这个意思?
Loren_SUN 2017-07-22
  • 打赏
  • 举报
回复
只是这两个一结合我就蒙了
Java实验室^_^ 2017-07-22
  • 打赏
  • 举报
回复
先对时间字段取年月日,然后取最近七天的数据,再对新的时间字段进行分组统计
Loren_SUN 2017-07-22
  • 打赏
  • 举报
回复
有没有人啊 帮忙解决一下啊

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧