Java 某些服务器上的MySQL数据截断错误

Java 某些服务器上的MySQL数据截断错误,java,mysql,tomcat,resin,Java,Mysql,Tomcat,Resin,我在互联网上做了很多搜索,但找不到像这样的问题报告,所以我希望这里的人可能知道出了什么问题。在我的java代码中,我有一个从数据库中提取数据的查询。我已经确认SQL格式良好,并且我在这个java文件中的所有其他查询都运行良好。事实上,当我使用dev-test-Tomcat服务器时,即使这个查询也会正常运行。但是,当我尝试使用dev test Resin服务器运行此特定查询时,直到最近,它在该服务器上运行得非常好,或者使用Tomcat的QA test服务器,我得到以下错误: com.mysql.j

我在互联网上做了很多搜索,但找不到像这样的问题报告,所以我希望这里的人可能知道出了什么问题。在我的java代码中,我有一个从数据库中提取数据的查询。我已经确认SQL格式良好,并且我在这个java文件中的所有其他查询都运行良好。事实上,当我使用dev-test-Tomcat服务器时,即使这个查询也会正常运行。但是,当我尝试使用dev test Resin服务器运行此特定查询时,直到最近,它在该服务器上运行得非常好,或者使用Tomcat的QA test服务器,我得到以下错误:

com.mysql.jdbc.MysqlDataTruncation:数据截断:不正确的日期时间值:“131500”

我假设'131500'来自返回的第一个datetime值的时间部分,即'13:15:00'。 此查询中导致问题的特定部分如下所示:

CONCATDATE_格式选择datenotime,'%Y-%m-%d','',DATE_格式从约会中选择约会时间,其中约会日期=datenotime,约会服务id=服务id,'%T'

如果我删除它,那么我在任何服务器上都不会遇到问题,因此它只在格式化和连接时间时发生。我认为这里的问题一定是服务器设置的问题?尽管据我所知,最近没有对树脂服务器进行任何更改。我试着更新Resin的msyql连接器jar,但没用。有人知道出了什么问题吗


谢谢

我的猜测是,当datenotime为null时,您会遇到此错误


这是有道理的,因为您将连接DateNotTime和appointmenttime。如果datenotime为null,那么剩下的就是时间,它无法转换为任何已知的datetime值。

谢谢,熏肉。然而,我只是仔细检查了一下,datenotime不是空的——这一行的值是“2015-06-15”。