sql按时间查询

longyuan2801 2009-11-17 09:00:58
我现在有一张表 里面有一个时间字段 类型是vachar2(20) ,如何按时间段进行数据的查询,这样的SQL如何写?
...全文
121 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh62592855 2009-11-18
  • 打赏
  • 举报
回复
恩 我刚试了下 直接比字符串也是可以的
呵呵 ORACLE还挺聪明哦 把字符串当日期比 我试了几个特殊值都没试出错误 好像是可以
不过有个限制条件 那就是比较字符串必须与表中存储日期字符串的格式相同才行

SQL> select * from t1;

TIME
--------------------
2009-11-17 12:10:20
2009-11-16 12:10:20
2009-11-16 15:10:20

SQL> select * from t1
2 where time between '09-11-16 13:
3 00:00' and '09-11-17 13:00:00';

no rows selected

SQL> select * from t1
2 where time between '2009-11-16 13:
3 00:00' and '2009-11-17 13:00:00';

TIME
--------------------
2009-11-17 12:10:20
2009-11-16 15:10:20
shiyiwan 2009-11-17
  • 打赏
  • 举报
回复
e ,楼上已经写了

直接字符串比较应该也是可以的
select * from t1
where time between '2009-11-16 13:
00:00' and '2009-11-17 13:00:00';
wh62592855 2009-11-17
  • 打赏
  • 举报
回复
SQL> create table t1(time varchar2(20));

Table created.

SQL> insert into t1 values('2009-11-17 12:10:20');

1 row created.

SQL> insert into t1 values('2009-11-16 12:10:20');

1 row created.

SQL> insert into t1 values('2009-11-16 15:10:20');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from t1;

TIME
--------------------
2009-11-17 12:10:20
2009-11-16 12:10:20
2009-11-16 15:10:20
SQL> select * from t1
2 where to_date(time,'YYYY-MM-DD HH24:MI:SS') between to_date('2009-11-16 13:
00:00','YYYY-MM-DD HH24:MI:SS') and to_date('2009-11-17 13:00:00','YYYY-MM-DD HH
24:MI:SS');

TIME
--------------------
2009-11-17 12:10:20
2009-11-16 15:10:20
longyuan2801 2009-11-17
  • 打赏
  • 举报
回复
里面存的数据为2009-10-09 12:10:30 方便的话把sql 写一些吧 谢谢
shiyiwan 2009-11-17
  • 打赏
  • 举报
回复
直接比较,输入的如果是date类型,则将输入参数用to_char函数转化成同字段格式的数据进行比较

17,382

社区成员

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

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