oracle语句中,如何查询某个时间段的内容,where后应该怎么写,比如我查询3:00到3:30的
4个回答
2013-05-31
展开全部
如果数据库的列, 是 DATE 类型的话:
WHERE
TO_CHAR( 日期列, 'HH24MI' ) >= '0300'
AND TO_CHAR( 日期列, 'HH24MI' ) <= '0330'
如果是 varchar2 类型的, 就要确定一下, 格式是否都是 固定的格式了。
否则 SUBSTR 计算起来, 也是很麻烦的。
WHERE
TO_CHAR( 日期列, 'HH24MI' ) >= '0300'
AND TO_CHAR( 日期列, 'HH24MI' ) <= '0330'
如果是 varchar2 类型的, 就要确定一下, 格式是否都是 固定的格式了。
否则 SUBSTR 计算起来, 也是很麻烦的。
更多追问追答
追问
HH24MI' 这个是什么,固定的格式吗?应该是date类型的,我读的是 v$sql试图,我想看具体哪个时间段的操作
追答
SQL> SELECT TO_CHAR( SYSDATE, 'HH24MI' ) FROM dual;
TO_C
----
1527
HH24 是获取时间中的小时部分, 是按24小时的方式来计算的
MI 是获取时间中的 分钟的部分。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL>alter session set nls_date_format='YYYY-MM-DD/HH24:MI:SS';
SQL>select to_char(sysdate,'YYYY-MM-DD/HH24:MI:SS') from dual;
SQL>select TO_DATE( '2013-05-31/01:23:45', 'YYYY-MM-DD/HH24:MI:SS') from dual;
SQL>select count(*) from table_name where create_time between to_date('2013-05-31/03:00:00','YYYY-MM-DD/HH24:MI:SS') and to_date ('2013-05-31/03:30:00','YYYY-MM-DD/HH24:MI:SS');
SQL>select to_char(sysdate,'YYYY-MM-DD/HH24:MI:SS') from dual;
SQL>select TO_DATE( '2013-05-31/01:23:45', 'YYYY-MM-DD/HH24:MI:SS') from dual;
SQL>select count(*) from table_name where create_time between to_date('2013-05-31/03:00:00','YYYY-MM-DD/HH24:MI:SS') and to_date ('2013-05-31/03:30:00','YYYY-MM-DD/HH24:MI:SS');
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用between ‘3:00’ and ‘3:30’
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询