diff --git a/sql_types.go b/sql_types.go index 0b3146c..8c6b83e 100644 --- a/sql_types.go +++ b/sql_types.go @@ -111,6 +111,7 @@ func (n *SqlNull[T]) Scan(value any) error { return n.FromString(fmt.Sprintf("%v", value)) } } + func (n *SqlNull[T]) FromString(s string) error { s = strings.TrimSpace(s) n.Valid = false @@ -448,7 +449,7 @@ type ( type SqlTimeStamp struct{ SqlNull[time.Time] } func (t SqlTimeStamp) MarshalJSON() ([]byte, error) { - if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0002, 1, 1, 0, 0, 0, 0, time.UTC)) { + if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0o002, 1, 1, 0, 0, 0, 0, time.UTC)) { return []byte("null"), nil } return fmt.Appendf(nil, `"%s"`, t.Val.Format("2006-01-02T15:04:05")), nil @@ -465,14 +466,14 @@ func (t *SqlTimeStamp) UnmarshalJSON(b []byte) error { } func (t SqlTimeStamp) Value() (driver.Value, error) { - if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0002, 1, 1, 0, 0, 0, 0, time.UTC)) { + if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0o002, 1, 1, 0, 0, 0, 0, time.UTC)) { return nil, nil } return t.Val.Format("2006-01-02T15:04:05"), nil } func (t SqlTimeStamp) MarshalYAML() (any, error) { - if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0002, 1, 1, 0, 0, 0, 0, time.UTC)) { + if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0o002, 1, 1, 0, 0, 0, 0, time.UTC)) { return nil, nil } return t.Val.Format("2006-01-02T15:04:05"), nil @@ -489,7 +490,7 @@ func (t *SqlTimeStamp) UnmarshalYAML(value *yaml.Node) error { } func (t SqlTimeStamp) MarshalXML(e *xml.Encoder, start xml.StartElement) error { - if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0002, 1, 1, 0, 0, 0, 0, time.UTC)) { + if !t.Valid || t.Val.IsZero() || t.Val.Before(time.Date(0o002, 1, 1, 0, 0, 0, 0, time.UTC)) { return e.EncodeElement("", start) } return e.EncodeElement(t.Val.Format("2006-01-02T15:04:05"), start) diff --git a/sql_types_test.go b/sql_types_test.go index 8f9bca2..bad8dd3 100644 --- a/sql_types_test.go +++ b/sql_types_test.go @@ -955,4 +955,3 @@ func TestSqlByteArray_Base64_RoundTrip(t *testing.T) { t.Errorf("Round-trip failed: expected %v, got %v", original, b3.Val) } } -