package orm import ( "fmt" "time" ) type DateTime struct { time.Time } func (dt *DateTime) Scan(value any) error { switch v := value.(type) { case time.Time: dt.Time = v case string: t, err := time.Parse(time.RFC3339, v) if err != nil { return err } dt.Time = t default: return fmt.Errorf("unsupported type: %T", value) } return nil } func (dt DateTime) Value() (any, error) { return dt.Time.Format(time.RFC3339), nil }