Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA StoredProcedureQuery从参数开始获取错误值_Java_Mysql_Jpa_Stored Procedures - Fatal编程技术网

Java JPA StoredProcedureQuery从参数开始获取错误值

Java JPA StoredProcedureQuery从参数开始获取错误值,java,mysql,jpa,stored-procedures,Java,Mysql,Jpa,Stored Procedures,我在JPAStoredProcedureRequesty中遇到问题,问题在于我得到了意外的不同值。在MySQL workbench中,我执行名为sp_GET_Result的存储过程,它正在等待两个名为startDate和endDate的参数 例如: 结果如下: 到目前为止还可以,但问题是当我从JavaJPA调用它时 这是我的java例程 我得到的结果是: 2017-01-31,2017-02-01,2017-02-02,2017-02-03,2017-02-04,2017-02-05,2

我在JPA
StoredProcedureRequesty
中遇到问题,问题在于我得到了意外的不同值。在MySQL workbench中,我执行名为
sp_GET_Result
的存储过程,它正在等待两个名为
startDate
endDate
的参数

例如:

结果如下:

到目前为止还可以,但问题是当我从JavaJPA调用它时

这是我的java例程

我得到的结果是:

2017-01-31,2017-02-01,2017-02-02,2017-02-03,2017-02-04,2017-02-05,2017-02-06,2017-02-07,2017-02-08,2017-02-09,2017-02-10,2017-02-11,2017-02-12,2017-02-13,2017-02-14,2017-02-15,2017-02-16,2017-02-02-17,2017-02-18,2017-02-19,2017-02-02-20,2017-02-21,2017-02-22,2017-02-23,2017-02-02-26,2017-02-02>2017-02-27]

我认为问题不在于存储过程,而在于java发送的参数。 因为我试过打印Java发送和MySQL接收的参数,结果如下: 开始日期,结束日期 [2017-01-312017-02-27]但为什么?因为我从2017-02-01发送到2017-02-28


问题不在于存储过程,真正的问题在于结果的变化。

很可能是您的JDBC驱动程序将输入日期转换为数据库使用的UTC格式。或者通过UTC格式,您的响应日期转换为本地时区。请检查JDBC驱动程序设置:。

谢谢你的帮助!!!,你给了我找到真正问题的参考。问题是mysql所在的服务器。mysql有时区,服务器UTC和Java在CST中发送输入日期,因此mysql的响应是错误的。