@@ -48,22 +48,29 @@ class DateColumnType(val time: Boolean) : ColumnType(), IDateColumnType {
48
48
" '${DEFAULT_DATE_STRING_FORMATTER .print (dateTime)} '"
49
49
}
50
50
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
+ }
61
70
}
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()
67
74
}
68
75
}
69
76
0 commit comments