Oracle选择某个时间段内数据的问题
select*fromtab_dctwherebegintime>to_date('2011-8-228:00:00','yyyy-mm-ddhh24:mi:ss')an...
select * from tab_dc t where begintime > to_date('2011-8-22 8:00:00','yyyy-mm-dd hh24:mi:ss') and begintime < to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss')
执行显示ora-01813:只能指定一次小时
不明白那里错了,求正确解答! 展开
执行显示ora-01813:只能指定一次小时
不明白那里错了,求正确解答! 展开
3个回答
展开全部
最后一个yyyy-mm-hh写错了,应该为yyyy-mm-dd。
还有最好写成:
select * from tab_dc t where begintime between to_date('2011-8-22 8:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss')
在大数据量有索引的情况下,能很大的提高查询效率。使用‘> ’‘<’号的话,oracle会放弃索引,进行全盘扫描。养成好习惯。
还有最好写成:
select * from tab_dc t where begintime between to_date('2011-8-22 8:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss')
在大数据量有索引的情况下,能很大的提高查询效率。使用‘> ’‘<’号的话,oracle会放弃索引,进行全盘扫描。养成好习惯。
展开全部
sql 写错了,dd写成hh了。呵呵。
begintime < to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss')
改为
begintime < to_date('2011-8-22 12:30:00','yyyy-mm-dd hh24:mi:ss')
就对了。
正确的语句是:
select * from tab_dc t where begintime > to_date('2011-8-22 8:00:00','yyyy-mm-dd hh24:mi:ss') and begintime < to_date('2011-8-22 12:30:00','yyyy-mm-dd hh24:mi:ss')
begintime < to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss')
改为
begintime < to_date('2011-8-22 12:30:00','yyyy-mm-dd hh24:mi:ss')
就对了。
正确的语句是:
select * from tab_dc t where begintime > to_date('2011-8-22 8:00:00','yyyy-mm-dd hh24:mi:ss') and begintime < to_date('2011-8-22 12:30:00','yyyy-mm-dd hh24:mi:ss')
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
< to_date('2011-8-22 12:30:00','yyyy-mm-hh hh24:mi:ss') 最后这个地方,你看你的dd写成了hh
yyyy-mm-hh < ---- 就是这个位置
yyyy-mm-hh < ---- 就是这个位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询