MaxGekk commented on a change in pull request #27617: [SPARK-30865][SQL]
Refactor DateTimeUtils
URL: https://github.com/apache/spark/pull/27617#discussion_r382986162
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala
##########
@@ -407,137 +397,141 @@ object DateTimeUtils {
}
}
- private def localTimestamp(microsec: SQLTimestamp, zoneId: ZoneId):
LocalDateTime = {
- microsToInstant(microsec).atZone(zoneId).toLocalDateTime
+ private def getLocalDateTime(micros: Long, zoneId: ZoneId): LocalDateTime = {
+ microsToInstant(micros).atZone(zoneId).toLocalDateTime
}
/**
* Returns the hour value of a given timestamp value. The timestamp is
expressed in microseconds.
*/
- def getHours(microsec: SQLTimestamp, zoneId: ZoneId): Int = {
- localTimestamp(microsec, zoneId).getHour
+ def getHours(micros: Long, zoneId: ZoneId): Int = {
+ getLocalDateTime(micros, zoneId).getHour
}
/**
* Returns the minute value of a given timestamp value. The timestamp is
expressed in
- * microseconds.
+ * microseconds since the epoch.
*/
- def getMinutes(microsec: SQLTimestamp, zoneId: ZoneId): Int = {
- localTimestamp(microsec, zoneId).getMinute
+ def getMinutes(micros: Long, zoneId: ZoneId): Int = {
+ getLocalDateTime(micros, zoneId).getMinute
}
/**
* Returns the second value of a given timestamp value. The timestamp is
expressed in
- * microseconds.
+ * microseconds since the epoch.
*/
- def getSeconds(microsec: SQLTimestamp, zoneId: ZoneId): Int = {
- localTimestamp(microsec, zoneId).getSecond
+ def getSeconds(micros: Long, zoneId: ZoneId): Int = {
+ getLocalDateTime(micros, zoneId).getSecond
}
/**
* Returns the seconds part and its fractional part with microseconds.
*/
- def getSecondsWithFraction(microsec: SQLTimestamp, zoneId: ZoneId): Decimal
= {
- Decimal(getMicroseconds(microsec, zoneId), 8, 6)
+ def getSecondsWithFraction(micros: Long, zoneId: ZoneId): Decimal = {
+ Decimal(getMicroseconds(micros, zoneId), 8, 6)
}
/**
- * Returns seconds, including fractional parts, multiplied by 1000. The
timestamp
- * is expressed in microseconds since the epoch.
+ * Returns local seconds, including fractional parts, multiplied by 1000.
Review comment:
See the example above, the function returns `30123` instead of the
milliseconds field `123`.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]