Hibernate: select count(trainclazz0_.CLAZZ_ID) as col_0_0_ from TRAIN_CLAZZ trainclazz0_ left outer join train.dbo.TRAIN_PROJECT trainproje1_ on trainclazz0_.PROJECT_ID=trainproje1_.PROJECT_ID left outer join TRAIN_PLAN_BOOK trainplanb2_ on trainclazz0_.CLAZZ_ID=trainplanb2_.CLAZZ_ID where trainclazz0_.PEFORM_STATE=4 and substring(convert(varchar(30), trainplanb2_.TRAIN_TIME, 102))='04'
2009-12-23 11:37:47,875  WARN (JDBCExceptionReporter.java:77) - SQL Error: 174, SQLState: 37000
2009-12-23 11:37:47,875 ERROR (JDBCExceptionReporter.java:78) - substring 函数要求有 3 个参数。
2009-12-23 11:37:47,875  WARN (RequestProcessor.java:528) - Unhandled Exception thrown: class org.springframework.dao.InvalidDataAccessResourceUsageException
2009-12-23 11:37:47 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.sql.SQLException: substring 函数要求有 3 个参数。
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
在程序里是这样的select count(tc.clazzId) from TrainClazz tc left join tc.trainProject left join tc.trainPlanBook tk where tc.peformState=4 and substring(convert(varchar(30),tk.trainTime,102),6,2)='05'
为什么执行的时候substring就少了两个参数呢?  搞不懂, 很急....
at org.hibernate.loader.Loader.list(Loader.java:2099)