gpt4 book ai didi

postgresql - 如何在 Go 中表示 PostgreSQL 区间

转载 作者:IT王子 更新时间:2023-10-29 00:43:58 31 4
gpt4 key购买 nike

如何在 Go 中表示 PostgreSQL 区间?

我的结构看起来像这样:

type Product struct {
Id int
Name string
Type int
Price float64
Execution_time ????
}

我的数据库中的 execution_time 字段是 interval

最佳答案

我的最佳答案come across是在您的架构中使用 bigint,并在 time.Duration 的包装器类型上实现 ValueScan

// Duration lets us convert between a bigint in Postgres and time.Duration
// in Go
type Duration time.Duration

// Value converts Duration to a primitive value ready to written to a database.
func (d Duration) Value() (driver.Value, error) {
return driver.Value(int64(d)), nil
}

// Scan reads a Duration value from database driver type.
func (d *Duration) Scan(raw interface{}) error {
switch v := raw.(type) {
case int64:
*d = Duration(v)
case nil:
*d = Duration(0)
default:
return fmt.Errorf("cannot sql.Scan() strfmt.Duration from: %#v", v)
}
return nil
}

不幸的是,您将牺牲在查询中执行区间运算的能力 - 除非一些聪明的家伙想要发布 bigint => interval 的类型转换。

关于postgresql - 如何在 Go 中表示 PostgreSQL 区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746858/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com