Skip to content

Commit 9fec304

Browse files
committed
reinstate timestamp lims
1 parent 30758f0 commit 9fec304

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

sql/types/datetime.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package types
1717
import (
1818
"context"
1919
"fmt"
20+
"math"
2021
"reflect"
2122
"time"
2223

@@ -209,6 +210,10 @@ func ConvertToTime(ctx context.Context, v interface{}, t datetimeType) (time.Tim
209210
return time.Time{}, err
210211
}
211212

213+
if res.Equal(zeroTime) {
214+
return zeroTime, nil
215+
}
216+
212217
if t == DatetimeMaxLimit {
213218
validated := ValidateTime(res)
214219
if validated == nil {
@@ -224,18 +229,14 @@ func ConvertToTime(ctx context.Context, v interface{}, t datetimeType) (time.Tim
224229
}
225230
case sqltypes.Datetime:
226231
if res.Year() < 0 || res.Year() > 9999 {
227-
return time.Time{}, ErrConvertingToTimeOutOfRange.New(res.Format(sql.TimestampDatetimeLayout), t.String())
232+
return time.Time{}, ErrConvertingToTimeOutOfRange.New(res.Format(sql.DatetimeLayoutNoTrim), t.String())
228233
}
229234
case sqltypes.Timestamp:
230-
if ValidateTimestamp(res) == nil {
231-
return time.Time{}, ErrConvertingToTimeOutOfRange.New(v, t)
235+
if res.Before(time.Unix(1, 0)) || res.After(time.Unix(math.MaxInt32, 999999000)) {
236+
return time.Time{}, ErrConvertingToTimeOutOfRange.New(res.Format(sql.TimestampDatetimeLayout), t.String())
232237
}
233238
}
234239

235-
if res.Equal(zeroTime) {
236-
return zeroTime, nil
237-
}
238-
239240
return res, nil
240241
}
241242

0 commit comments

Comments
 (0)