Files
ent/dialect/sql/sql_112.go
Ariel Mashraki d31f0828f0 dialect/sql: replace nulltime with official implementation on 1.13 and higher
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/169

Reviewed By: alexsn

Differential Revision: D18561431

fbshipit-source-id: d21335c073e0abed99d97c85c03cfa17c8326fef
2019-11-17 09:06:58 -08:00

39 lines
857 B
Go

// Copyright 2019-present Facebook Inc. All rights reserved.
// This source code is licensed under the Apache 2.0 license found
// in the LICENSE file in the root directory of this source tree.
// +build !go1.13
package sql
import (
"database/sql/driver"
"time"
)
// NullTime represents a time.Time that may be null.
//
// NullTime implements the Scanner interface so it can
// be used as a scan destination, similar to NullString.
type NullTime struct {
Time time.Time
Valid bool // Valid is true if Time is not NULL
}
// Scan implements the Scanner interface.
func (n *NullTime) Scan(v interface{}) error {
if v, ok := v.(time.Time); ok {
n.Time = v
n.Valid = true
}
return nil
}
// Value implements the driver Valuer interface.
func (n NullTime) Value() (driver.Value, error) {
if !n.Valid {
return nil, nil
}
return n.Time, nil
}