Oracle sql用时间段判断问题~~续

weiyei2002 2010-11-08 04:55:34
在我的表中有一个字段存储的是datetime格式“yyyy-mm-dd hh24:mi:ss”。
我想获得10月1号到10月31号之间 早上6点到早上9点之间的数据。 这是刚才的问题~~
首先谢谢 各位大虾帮我~
又有点问题
如果想要提取 6点30到9点之间的数据如何写啊~~
...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxyzxq2008 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 weiyei2002 的回复:]
在我的表中有一个字段存储的是datetime格式“yyyy-mm-dd hh24:mi:ss”。
我想获得10月1号到10月31号之间 早上6点到早上9点之间的数据。 这是刚才的问题~~
首先谢谢 各位大虾帮我~
又有点问题
如果想要提取 6点30到9点之间的数据如何写啊~~
[/Quote]把刚才的那个时间改一下就可以了啊,原来的6点改成6点30分
心中的彩虹 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 weiyei2002 的回复:]
在我的表中有一个字段存储的是datetime格式“yyyy-mm-dd hh24:mi:ss”。
我想获得10月1号到10月31号之间 早上6点到早上9点之间的数据。 这是刚才的问题~~
首先谢谢 各位大虾帮我~
又有点问题
如果想要提取 6点30到9点之间的数据如何写啊~~
[/Quote]
datetime 是mssql的 写错了吧 date类型的
(to_char(dt,'yyyy-mm-dd') between '2010-10-01' and '2010-10-31')
and to_char(dt,'hh24:mi') between '06:30' and '09:00'
macle2010 2010-11-08
  • 打赏
  • 举报
回复
BEGIN
FOR DATE1 IN 20101001 .. 20101031 LOOP
SELECT *
FROM TABLE_NAME
WHERE COL1 BETWEEN TO_DATE(DATE1||'055959','YYYYMMDDHH24MISS') AND TO_DATE(DATE1||'085959','YYYYMMDDHH24MISS');
END LOOP;
END;
macle2010 2010-11-08
  • 打赏
  • 举报
回复
BEGIN
FOR DATE1 IN 20101001 .. 20101031 LOOP
SELECT *
FROM TABLE_NAME
WHERE COL1 BETWEEN TO_DATE(DATE1||'055959','YYYYMMDDHH24MISS') AND TO_DATE(DATE1||'085959','YYYYMMDDHH24MISS');
END LOOP;
END;
kingkingzhu 2010-11-08
  • 打赏
  • 举报
回复
楼主看下 to_char 和yyyy-mm-dd hh24:mi:ss分别对应的含义 就会了
  • 打赏
  • 举报
回复
select * from tablename 
where to_char(col,'yyyymmdd') between 20101001 and 20101031
and to_char(col,'hh24mi') between 630 and 900
dawugui 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 weiyei2002 的回复:]
在我的表中有一个字段存储的是datetime格式“yyyy-mm-dd hh24:mi:ss”。
我想获得10月1号到10月31号之间 早上6点到早上9点之间的数据。 这是刚才的问题~~
首先谢谢 各位大虾帮我~
又有点问题
如果想要提取 6点30到9点之间的数据如何写啊~~
[/Quote]
select * from tb where to_char(时间字段,'YYYY-MM') between '2010-10' and to_char(时间字段,'HH:MI:SS') between '0630' and '0900'
lnuwhy 2010-11-08
  • 打赏
  • 举报
回复
select * from your_table
where (to_number(to_char(your_date_column,'hh24mi')) between 630 and 900)
and (your_date_column between to_date('20101001','yyyymmdd') and to_date('20101031','yyyymmdd'))
gelyon 2010-11-08
  • 打赏
  • 举报
回复
你原来的datetime是什么类型的? varchar2还是date?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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