请教问题

select * from Bill_BoHaiLeave
where 1=1
${if(type=="日期", " and format(fromDate,yyyy-mm-dd) >= '"+ startdate +"' and format(toDate,yyyy-mm-dd) <='"+ enddate +"'"," and month(fromDate) = '2011-11'")}

大家帮看一下,这个语句有没有问题
FineReportstone 发布于 2011-12-27 09:32
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共10回答
最佳回答
0
yuzhifu发布于2011-12-27 09:47(编辑于 2023-9-6 09:34)
555
最佳回答
0
yuzhifu发布于2011-12-27 09:50(编辑于 2023-9-6 09:34)
555
最佳回答
0
vikou发布于2011-12-27 10:35(编辑于 2023-9-6 09:34)
555
最佳回答
0
译生发布于2011-12-27 15:20(编辑于 2023-9-6 09:34)
555
最佳回答
0
stone发布于2011-12-27 17:49(编辑于 2023-9-6 09:34)
555
  • yuzhifu yuzhifu

    你把日志中SQL信息贴出来看一下,找不到的话,点窗口-视图-日志,就能把日志调出来。
    回复
    2011-12-27 17:59 
最佳回答
0
yuzhifu发布于2011-12-27 17:59(编辑于 2023-9-6 09:34)
555
最佳回答
0
stone发布于2011-12-28 09:40(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    你的日期是8位的?
    如果你的后台日期是字符型,你按月的话,就只传入年和月,只是按月就只传月,截取字符就行了,让数据库的日期截取年月和传入的参数年月进行匹配。
    如果是日期类型就用函数取得月进行匹配,至于用户选择哪种方式,肯定是个下拉框选择,根据用选择进行判断,就是你上面用的if,不过在他的else里面把sql写进去就行了。
    select * from Bill_BoHaiLeave where 1=1 ${if(type==\"日期\",\"and fromDate >= \'\" + startdate + \"\' and toDate <= \'\" + enddate + \"\'\"}     ${if(type==\"月份\",\"and month(formDate) = \"+ month + \" and year(fromDate) = \" + year ,\"\"))},给你分开了好看清楚,如果没选择的那个if里面肯定是空。
    回复
    2011-12-28 09:49 
最佳回答
0
nanboalex发布于2011-12-28 09:49(编辑于 2023-9-6 09:34)
555
  • stone stone(提问者)

    这样写后,按月份查的时候,提示我列名无效,是怎么回事,都样的列名,在日期里查询就好用
    回复
    2011-12-28 11:50 
最佳回答
0
stone发布于2011-12-28 11:50(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    判断没问题,肯定是sql问题,看看日志输出的sql是什么,放到你们的数据库中运行看看有没有问题,在检查下使用的函数是否正确,截取是否有问题。
    回复
    2011-12-28 11:59 
最佳回答
0
nanboalex发布于2011-12-28 11:59(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 2201浏览人数
  • 最后回答于:2011-12-29 17:00
    活动推荐 更多
    热门课程 更多
    返回顶部