Java 不同时区的JVM和Oracle数据库
JVM时区与我的数据库时区不同(相隔1小时) 下面的伪代码是否有明显的错误。我有一个更新一个多小时没有更新的行的过程 伪代码Java 不同时区的JVM和Oracle数据库,java,oracle,timezone,Java,Oracle,Timezone,JVM时区与我的数据库时区不同(相隔1小时) 下面的伪代码是否有明显的错误。我有一个更新一个多小时没有更新的行的过程 伪代码 while(true){ // Pick rows which were not updated in the last hour preparedStatement = connection.prepareStatement("select * from data where refresh_date<sysdate-(60/1440) and rownum
while(true){
// Pick rows which were not updated in the last hour
preparedStatement = connection.prepareStatement("select * from data where refresh_date<sysdate-(60/1440) and rownum <50");
// Update refreshed_date of each row which is going to be updated
//(the ones which were picked using the above query)
preparedStatement = connection.prepareStatement("update data set refresh_date=sysdate where id =?");
//then update the actual row
}
给出了JVM时间,这表明更新查询正在使用JVM时间。select的工作方式是否相同,还是它选择了数据库时间?使用带时区的时间戳…显然,数据库将使用数据库的时区。这并不意味着系统之间没有任何转换。因此,所有的事情都发生了。@Dave-但是为什么update语句要用JVM时间更新数据库呢?听起来你的nls参数设置不正确。
select to_char(refresh_date,'dd/mm/yy hh24:mi') from data;