1、就是这段sql,as_senddate是varchar类型,
UPDATE as_infos t SET t.as_status='22' WHERE (TO_DAYS(NOW()) -
TO_DAYS(t.as_senddate)) >= 0 AND
t.as_status='21'
2、直接在mysql中执行不报错,使用mybatis时报错。as_senddate的值不为空。
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ''
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4094)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1379)
http://blog.csdn.net/wangjian5748/article/details/18923197
用框架的时候参数传递的是什么类型呢?应该跟数据库类型一致。
无效的时间值类型数据。应该保证数据类型的一致性。希望对你有用。
(TO_DAYS(NOW()) - TO_DAYS(t.as_senddate)) >= 0 这里写sql查询效率不高
可以试试使用t.as_senddate <=to_char(NOW()))
t.as_senddate 应该是这里为空,或者识别不出这个字段