The following works in dbeaver but not in jdbc:
SET @@TIMESTAMP=UNIX_TIMESTAMP(“2018-01-19 04:14:07.999999”);
SELECT CURRENT_TIMESTAMP
Result: 2018-01-19 04:14:07.000000
Mariadb 10.11.6-MariaDB-0+deb
mariadb-java-client: 3.3.3
openjdk 19.0.2
best regards
Heiko
JDBC:
final String timestampString = transientInstance
.getValidFrom()
.format(DateTimeFormat);
try (Connection con = datasource.getConnection();
PreparedStatement timestampStatement = con.prepareStatement("SET @@SESSION.TIMESTAMP=UNIX_TIMESTAMP(?);");
PreparedStatement readTimestampStatement = con.prepareStatement("SELECT CURRENT_TIMESTAMP FROM DUAL")) {
LOGGER.atDebug()
.addArgument(timestampString)
.log("Setting @TIMESTAMP to {}");
Result: Setting @TIMESTAMP to 2024-07-26 09:07:73.730084000
timestampStatement.setString(1, timestampString);
timestampStatement.execute();
timestampStatement.close();
readTimestampStatement.execute();
final ResultSet resultSetReadTimestamp = readTimestampStatement.getResultSet();
resultSetReadTimestamp.next();
LOGGER.atInfo()
.addArgument(resultSetReadTimestamp.getObject(1))
.log("Timestamp: {}");
Result: Timestamp: 2024-07-29 09:58:27.0 -** expected: 2024-07-26 09:07:73.730084000**
resultSetReadTimestamp.close();