首页 > 解决方案 > 如何使用带有 GORM 的 golang 光纤编程语言获取 postgresql 数据库中的最新数据?

问题描述

我创建了一个结构

    type Humid struct {
        Id        int
        Sensor_id int
        Value     float32
        CreateAt  time.Time
    }

这是连接到数据库

    func PostgreSQL() {
        dsn := "host=localhost user= password= dbname= port= sslmode=disable TimeZone=Asia/Shanghai"
        connection, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
        fmt.Println("Connected!")
        if err != nil {
            panic("Could not connect to database")
        }
        DB = connection
    }

在这个函数中,我想从数据库中获取最新数据

    func WebsoValue(c *fiber.Ctx) error {
        var device []Humid
        DB.Find(&device)
        return c.JSON(device)
    }

标签: postgresqlgofibers

解决方案


您可以Interval借助Raw Query.

以下是您的场景的示例:

    func WebsoValue(c *fiber.Ctx) error {
      
            var device []Humid
            DB.Raw("SELECT * FROM mytable WHERE created_at >= NOW() - INTERVAL '5 minutes'"
).Scan(&device)
            return c.JSON(device)
        }

确保在扫描数据时进行错误处理。


推荐阅读