Skip to content

Commit 9bf6a65

Browse files
committed
Adjust joda DateColumnType to the start of the day when read from DB
1 parent a2d05d8 commit 9bf6a65

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

exposed-jodatime/src/main/kotlin/org/jetbrains/exposed/sql/jodatime/DateColumnType.kt

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,29 @@ class DateColumnType(val time: Boolean) : ColumnType(), IDateColumnType {
4848
"'${DEFAULT_DATE_STRING_FORMATTER.print(dateTime)}'"
4949
}
5050

51-
override fun valueFromDB(value: Any): Any = when (value) {
52-
is DateTime -> value
53-
is java.sql.Date -> DateTime(value.time)
54-
is java.sql.Timestamp -> DateTime(value.time)
55-
is Int -> DateTime(value.toLong())
56-
is Long -> DateTime(value)
57-
is String -> when {
58-
time -> DateTime.parse(value, formatterForDateTimeString(value))
59-
currentDialect is SQLiteDialect -> SQLITE_DATE_STRING_FORMATTER.parseDateTime(value)
60-
else -> DEFAULT_DATE_STRING_FORMATTER.parseDateTime(value)
51+
override fun valueFromDB(value: Any): Any {
52+
val dateTime = when (value) {
53+
is DateTime -> value
54+
is java.sql.Date -> DateTime(value.time)
55+
is java.sql.Timestamp -> DateTime(value.time)
56+
is Int -> DateTime(value.toLong())
57+
is Long -> DateTime(value)
58+
is String -> when {
59+
time -> DateTime.parse(value, formatterForDateTimeString(value))
60+
currentDialect is SQLiteDialect -> SQLITE_DATE_STRING_FORMATTER.parseDateTime(value)
61+
else -> DEFAULT_DATE_STRING_FORMATTER.parseDateTime(value)
62+
}
63+
64+
else -> {
65+
if (localDateTimeClass == value.javaClass)
66+
DateTime.parse(value.toString())
67+
else
68+
valueFromDB(value.toString()) as DateTime
69+
}
6170
}
62-
else -> {
63-
if (localDateTimeClass == value.javaClass)
64-
DateTime.parse(value.toString())
65-
else
66-
valueFromDB(value.toString())
71+
return when (time) {
72+
true -> dateTime
73+
false -> dateTime.withTimeAtStartOfDay()
6774
}
6875
}
6976

0 commit comments

Comments
 (0)