起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7281|回复: 9

[结贴] OA模块里出差申请,选择出差时间段,计算天数时。SQL报错

[复制链接]

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
发表于 2013-5-15 13:59:37 | 显示全部楼层 |阅读模式
进入出差申请菜单,选择开始日期和结束日期,然后报错。报错页面如下:



报错详情如下:

        ... 21 more
Caused by: com.justep.model.exception.ModelException: 执行ksql:select e.fDate,e.fState from OA_WM_Holiday e where  e.fDate between stringToDate('113-5-16') and stringToDate('113-5-30')时出错!
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.KSQL.select(Unknown Source)
        at KSQLProcedure.query(KSQLProcedure.java:15)
        ... 26 more
Caused by: java.sql.SQLException: 从字符串向 datetime 转换时失败。
        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
        at net.sourceforge.jtds.jdbc.TdsCore.isDataInResultSet(TdsCore.java:792)
        at net.sourceforge.jtds.jdbc.JtdsResultSet.<init>(JtdsResultSet.java:146)
        at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:424)
        at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:693)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
        ... 31 more



出差申请报错1.jpg

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
 楼主| 发表于 2013-5-15 16:47:59 | 显示全部楼层
怎么没人来处理啊,查看15,回复0啊。我看了很多地方都用到stirngToDate()这个函数,都报错啊。。。是不是哪里需要引用?(消灭0回复!)

39

主题

1379

帖子

2464

积分

金牌会员

Rank: 6Rank: 6

积分
2464
发表于 2013-5-16 09:12:05 | 显示全部楼层
fairytail 发表于 2013-5-15 16:47
怎么没人来处理啊,查看15,回复0啊。我看了很多地方都用到stirngToDate()这个函数,都报错啊。。。是不是 ...

你传入的参数值有问题,怎么是'113-5-16'?

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
 楼主| 发表于 2013-5-16 09:17:03 | 显示全部楼层
lixin_justep 发表于 2013-5-16 09:12
你传入的参数值有问题,怎么是'113-5-16'?

common.js里面有一段代码,计算出来的。我传入的BeginDate是2013-5-16。。代码如下:

// 判断是否是节假日
function getHolidays(itvHour,beginDate,endDate){
        var datetime1=new Date(beginDate.split("-")[0],Number(beginDate.split("-")[1]),beginDate.split("-")[2]);
        var ddd = new Date(beginDate);
        var time1=new Date(datetime1.getTime()+24 * 60 * 60 * 1000);
        var s1=time1.getYear()+"-"+(time1.getMonth())+"-"+time1.getDate();
       
        var datetime2=new Date(endDate.split("-")[0],Number(endDate.split("-")[1]),endDate.split("-")[2]);
        var time2=new Date(datetime2.getTime()-24 * 60 * 60 * 1000);
        var s2=time2.getYear()+"-"+(time2.getMonth())+"-"+time2.getDate();
       
        var ksql = "select e.fDate,e.fState from OA_WM_Holiday e where  e.fDate between stringToDate('"+s1+"') and stringToDate('"+s2+"')";                                                                                                                                                                                                                 
        var dataModel = "/OA/workTime/data";
        var param = new justep.Request.ActionParam();
        param.setString('ksql', ksql);
        param.setString('dataModel', dataModel);
        var result = justep.Request.sendBizRequest(
                        "/OA/workTime/process/leave/leaveProcess", "mainActivity",
                        "ksqlQueryAction", param, null, null, true);


我alert(time1.getYear()) 就变成113了。。不知道为什么计算有问题。好多地方用的到这个方法的都出现类似问题。。

39

主题

1379

帖子

2464

积分

金牌会员

Rank: 6Rank: 6

积分
2464
发表于 2013-5-16 10:15:16 | 显示全部楼层
fairytail 发表于 2013-5-16 09:17
common.js里面有一段代码,计算出来的。我传入的BeginDate是2013-5-16。。代码如下:

// 判断是否是节假 ...

我这里试了一下不能重现,检查一下是不是系统的日期格式引起来的

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
 楼主| 发表于 2013-5-16 11:48:26 | 显示全部楼层
lixin_justep 发表于 2013-5-16 10:15
我这里试了一下不能重现,检查一下是不是系统的日期格式引起来的

都检查过了。系统的日期也改为默认的了。。我这OA的代码是昨天新下载的。然后测试功能菜单的时候就出现了这样的问题。如果你那边不能重现,你有时间远程帮我看看吗?被这个问题卡住了,很多事情都不能做了。

9

主题

246

帖子

551

积分

高级会员

Rank: 4

积分
551
发表于 2013-5-16 16:35:10 | 显示全部楼层
你是什么数据库

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
 楼主| 发表于 2013-5-16 16:39:22 | 显示全部楼层
大脸May 发表于 2013-5-16 16:35
你是什么数据库

MSSQL 2005

39

主题

1379

帖子

2464

积分

金牌会员

Rank: 6Rank: 6

积分
2464
发表于 2013-5-17 08:54:27 | 显示全部楼层
fairytail 发表于 2013-5-16 16:39
MSSQL 2005

739066752 远程看看

3

主题

23

帖子

102

积分

初级会员

Rank: 2

积分
102
 楼主| 发表于 2013-5-17 10:39:12 | 显示全部楼层
lixin_justep 发表于 2013-5-17 08:54
739066752 远程看看

我把common.js里面的getYear()方法,换成getFullYear(),就可以正确计算了。不知道是不是我这JS库的问题。
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 21:17 , Processed in 0.062946 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表