postgresql - 如何使用带有 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)
}
解决方案
您可以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)
}
确保在扫描数据时进行错误处理。
推荐阅读
- python - 如何从几何联合计算几何轮廓
- inno-setup - 根据所选任务生成从 Inno Setup [Run] 部分执行的程序的参数
- c# - 从持久功能向服务总线大规模发送消息
- algorithm - 关于15-5-3除法规则的写法
- jquery - 如何在 jquery 上显示输入的值?
- python-3.x - 如何使用 BeautifulSoup 在 html 中查找 div 的直接子项(不是子项的子项)?
- windows - 未找到 C 或 C++ 编译器 Visual Studio 2017 Cmake
- javascript - Google Maps API 中的内置热图图层可以针对动画进行优化吗?
- javascript - 从其数组值升序附加元素
- rx-java - 依次运行不同数量的 observables