diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala index d907ce6b100c..b342d01946d8 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala @@ -493,8 +493,7 @@ object JdbcUtils extends Logging with SQLConfHelper { (rs: ResultSet, row: InternalRow, pos: Int) => val t = rs.getTimestamp(pos + 1) if (t != null) { - row.setLong(pos, - DateTimeUtils.localDateTimeToMicros(dialect.convertJavaTimestampToTimestampNTZ(t))) + row.setLong(pos, dialect.convertJavaTimestampToTimestampNTZ(t)) } else { row.update(pos, null) } diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala index 93a311be2f86..540839999d6c 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala @@ -111,11 +111,11 @@ abstract class JdbcDialect extends Serializable with Logging { * JDBC dialects should override this function to provide implementations that suite their * JDBC drivers. * @param t Timestamp returned from JDBC driver getTimestamp method. - * @return A LocalDateTime representing the same wall clock time as the timestamp in database. + * @return A Long value representing the same wall clock time as the timestamp in database. */ @Since("3.5.0") - def convertJavaTimestampToTimestampNTZ(t: Timestamp): LocalDateTime = { - DateTimeUtils.microsToLocalDateTime(DateTimeUtils.fromJavaTimestampNoRebase(t)) + def convertJavaTimestampToTimestampNTZ(t: Timestamp): Long = { + DateTimeUtils.fromJavaTimestampNoRebase(t) } /** diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala index b42d575ae2d4..049c5b98bc61 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala @@ -25,6 +25,7 @@ import java.util.Locale import org.apache.spark.sql.AnalysisException import org.apache.spark.sql.catalyst.SQLConfHelper import org.apache.spark.sql.catalyst.analysis.{IndexAlreadyExistsException, NonEmptyNamespaceException, NoSuchIndexException} +import org.apache.spark.sql.catalyst.util.DateTimeUtils import org.apache.spark.sql.connector.catalog.Identifier import org.apache.spark.sql.connector.expressions.NamedReference import org.apache.spark.sql.errors.QueryCompilationErrors @@ -103,8 +104,8 @@ private object PostgresDialect extends JdbcDialect with SQLConfHelper { case _ => None } - override def convertJavaTimestampToTimestampNTZ(t: Timestamp): LocalDateTime = { - t.toLocalDateTime + override def convertJavaTimestampToTimestampNTZ(t: Timestamp): Long = { + DateTimeUtils.localDateTimeToMicros(t.toLocalDateTime) } override def convertTimestampNTZToJavaTimestamp(ldt: LocalDateTime): Timestamp = {