From 5a01659585659d79d0ac51f699013e41a8c2d0c8 Mon Sep 17 00:00:00 2001 From: iroqueta Date: Fri, 2 May 2025 17:57:19 -0300 Subject: [PATCH] When property Date Time storage timezone tiene el valor Undefined servernow must not to be converted to cliente time zone. --- java/src/main/java/com/genexus/db/driver/GXDBMSdameng.java | 2 +- java/src/main/java/com/genexus/db/driver/GXDBMSoracle7.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/java/src/main/java/com/genexus/db/driver/GXDBMSdameng.java b/java/src/main/java/com/genexus/db/driver/GXDBMSdameng.java index 7435838ee..b178aff61 100644 --- a/java/src/main/java/com/genexus/db/driver/GXDBMSdameng.java +++ b/java/src/main/java/com/genexus/db/driver/GXDBMSdameng.java @@ -106,7 +106,7 @@ public void onConnection(GXConnection con) { } public java.util.Date serverDateTime(GXConnection con) throws SQLException { - ResultSet rslt = con.getStatement("_ServerDT_", "SELECT LOCALTIMESTAMP()", false).executeQuery(); + ResultSet rslt = con.getStatement("_ServerDT_", "SELECT CAST(LOCALTIMESTAMP() AS TIMESTAMP)", false).executeQuery(); rslt.next(); Date value = rslt.getTimestamp(1); diff --git a/java/src/main/java/com/genexus/db/driver/GXDBMSoracle7.java b/java/src/main/java/com/genexus/db/driver/GXDBMSoracle7.java index 7f7bf4d0d..ef04104da 100644 --- a/java/src/main/java/com/genexus/db/driver/GXDBMSoracle7.java +++ b/java/src/main/java/com/genexus/db/driver/GXDBMSoracle7.java @@ -4,6 +4,7 @@ import java.sql.*; import java.util.Date; +import com.genexus.Application; import com.genexus.CommonUtil; public class GXDBMSoracle7 implements GXDBMS @@ -127,7 +128,10 @@ public void onConnection(GXConnection con) public java.util.Date serverDateTime(GXConnection con) throws SQLException { - ResultSet rslt = con.getStatement("_ServerDT_", "SELECT SYSTIMESTAMP FROM DUAL", false).executeQuery(); + String sqlSentence = "SELECT SYSTIMESTAMP FROM DUAL"; + if (!Application.getClientPreferences().useTimezoneFix()) + sqlSentence = "SELECT CAST(SYSTIMESTAMP AS TIMESTAMP) FROM DUAL"; + ResultSet rslt = con.getStatement("_ServerDT_", sqlSentence, false).executeQuery(); rslt.next(); Date value = rslt.getTimestamp(1);