首页 新闻 会员 周边 捐助

根据日期变量查询数据表

0
悬赏园豆:10 [已解决问题] 解决于 2015-09-05 20:05

sql="select save_time from newuStandard2012.dbo.newu_tran_report where save_time>=convert(varchar(100),'"+beginDate+"',25)";

我用的是sqlserver2008数据库,beginDate是一个表示日期的变量,哪位师哥师姐帮我看下这个语句问题在哪儿,从客户端输入的日期格式为yyyy-MM-dd HH:mm:ss这个将传给beginDate,save_time的日期格式为yyyy-mm-dd hh:mm:ss.mmm,现在就是讲beginDate带过来的日期格式转换为和save_time的日期格式有问题,报的错是“ 从字符串转换日期和/或时间时,转换失败”。

醉翁之意的主页 醉翁之意 | 初学一级 | 园豆:162
提问于:2015-09-02 10:23
< >
分享
最佳答案
0

CONVERT() 函数是把日期转换为新数据类型的通用函数,你的save_time在数据库保存的是time类型的吗?time>=string?

收获园豆:10
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-09-02 10:31

save_time是datetime类型

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 10:52

@醉翁之意: 所以你这一定会报错的,time<=>string了

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 10:53

那该怎么写呢??麻烦您留一下qq号,好吗?谢谢了

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 10:56

@稳稳的河: 直接用参数的方式传,还可以防止注入

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 11:10

@稳稳的河: 刚参加工作,sqlserver初学,真的不知道该怎么写了,这个问题都纠结好几天了,您有解决的办法吗???

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 11:13

@醉翁之意: sqlsqerver里面有个sql server profiler工具,你去看下你传的SQL语句是什么,你就知道你为什么转不过去了,我是香港的IP,公司不运行远程

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 11:21

@稳稳的河: 

恩,谢谢啦,select save_time from newuStandard2012.dbo.newu_tran_report where save_time>=convert(varchar(100),'"+beginDate+"',25)
这就是监听的结果,他也没有提示什么错~

您能收邮件吗??

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 13:22

@稳稳的河: 

beginDate就是从前台传过来的一个参数

1、report.jsp

开始时间:<input class="Wdate" type="text" id="pageBeginTime"
 style="width: 150px;"
 onFocus="WdatePicker({isShowClear:true,readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})" /><br>

2、FindNewu_tran_reportServlet.java

    String beginDate=request.getParameter("pageBeginTime");
3、Newu_tran_reportDaoImpl .java
    public List<Newu_tran_report> find(String beginDate){
    sql="...................";
}
就是这样一层一层调用的传过来的

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 13:55

@醉翁之意: 邮箱James.He@r-pac.com.cn,你就把运行的时候生成的SQL发给我看下把

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-02 14:47

@稳稳的河: 恩,谢谢你啦,即使不认识,也这么用心回答我。

醉翁之意 | 园豆:162 (初学一级) | 2015-09-02 15:06

@稳稳的河: 谢谢了,那个问题我解决了,不过还是要谢谢你,

醉翁之意 | 园豆:162 (初学一级) | 2015-09-03 16:09

@醉翁之意:哦, 知道为什么转化不了就OK了

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-03 16:15

@稳稳的河: 直接写成select save_time newuStandard2012.dbo.newu_tran_report where convert(vachar(15),save_time,20)>='"+beginDate+"'

醉翁之意 | 园豆:162 (初学一级) | 2015-09-03 16:21

@醉翁之意: 你这样就全部变成char的了

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-03 16:25

@稳稳的河: 其实你不用convert,直接save_time>="'"+beginDate+"'"应该也可以

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-03 16:27

@稳稳的河: 我的beginDate日期格式和save_time的不一样,需要转一下才能

醉翁之意 | 园豆:162 (初学一级) | 2015-09-03 16:28

@醉翁之意: 格式不一样好像不可以数据库好像也可以自动的比较大小,没必要在乎后面的mmm,不过你这样好点

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-03 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册