SQL语句中比较时间时提示无效数字,报错
########################################################################执行的sql语句如下:SE...
########################################################################
执行的sql语句如下:
SELECT '000' as id,0 as leaf,'中华人民共和国' as fregionname,FNUM1,FNUM2,FNUM3,FNUM4,FNUM5,FNUM6,FNUM7,FNUM8,FNUM9 FROM (SELECT COUNT(*) AS FNUM1 FROM T_FDA_CHECKREPORT m where m.fistype1='on' AND to_char(fsigndate,'yyyy-mm-dd') >='2012-01-05' and '2012-10-18'>=to_char(fsigndate,'yyyy-mm-dd') )
###########################################################################
SELECT '000' as id,0 as leaf,'中华人民共和国' as fregionname,FNUM1,FNUM2,FNUM3,FNUM4,FNUM5,FNUM6,FNUM7,FNUM8,FNUM9
FROM
(SELECT COUNT(*) AS FNUM1
FROM T_FDA_CHECKREPORT m where m.fistype1='on' AND to_char(fsigndate,'yyyy-mm-dd') >=#ftime1# and #ftime2#>=to_char(fsigndate,'yyyy-mm-dd') )
##########################################################
只是截取了一部分,其中#ftime1#,#ftime2#是我定义的时间来和数据库中的fsigndate作比较 展开
执行的sql语句如下:
SELECT '000' as id,0 as leaf,'中华人民共和国' as fregionname,FNUM1,FNUM2,FNUM3,FNUM4,FNUM5,FNUM6,FNUM7,FNUM8,FNUM9 FROM (SELECT COUNT(*) AS FNUM1 FROM T_FDA_CHECKREPORT m where m.fistype1='on' AND to_char(fsigndate,'yyyy-mm-dd') >='2012-01-05' and '2012-10-18'>=to_char(fsigndate,'yyyy-mm-dd') )
###########################################################################
SELECT '000' as id,0 as leaf,'中华人民共和国' as fregionname,FNUM1,FNUM2,FNUM3,FNUM4,FNUM5,FNUM6,FNUM7,FNUM8,FNUM9
FROM
(SELECT COUNT(*) AS FNUM1
FROM T_FDA_CHECKREPORT m where m.fistype1='on' AND to_char(fsigndate,'yyyy-mm-dd') >=#ftime1# and #ftime2#>=to_char(fsigndate,'yyyy-mm-dd') )
##########################################################
只是截取了一部分,其中#ftime1#,#ftime2#是我定义的时间来和数据库中的fsigndate作比较 展开
3个回答
展开全部
AND to_char(fsigndate,'yyyy-mm-dd') >='2012-01-05'
换成 fsigndate >= to_date('2012-01-05','yyyy-mm-dd') 日期类型能比较,字符串就别这么弄了。。
同理其他日期比较的地方都换成日期类型
换成 fsigndate >= to_date('2012-01-05','yyyy-mm-dd') 日期类型能比较,字符串就别这么弄了。。
同理其他日期比较的地方都换成日期类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 要理解时间的处理和对比中,可以使用两种形式:一是时间和时间类型比较,二是字串和字串比较。这两种形式如下:
select * from dt where a > to_date('2012-10-12 11:00:00', 'yyyy-mm-dd hh24:mi:ss');
select * from dt where to_char(a, 'yyyy-mm-dd hh24:mi:ss') > '2012-10-12 11:00:00';
不能在比较表达式两边出现不同数据类型,如 a > '2012-10-11'
2 你的查询语句中,#ftime2#是什么格式?
必须为引号引起来的形如 'yyyy-mm-dd' 的格式才不致出错。
select * from dt where a > to_date('2012-10-12 11:00:00', 'yyyy-mm-dd hh24:mi:ss');
select * from dt where to_char(a, 'yyyy-mm-dd hh24:mi:ss') > '2012-10-12 11:00:00';
不能在比较表达式两边出现不同数据类型,如 a > '2012-10-11'
2 你的查询语句中,#ftime2#是什么格式?
必须为引号引起来的形如 'yyyy-mm-dd' 的格式才不致出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询