使用GORM在MySQL中获取NULL日期时间值 [英] Fetching NULL datetime value in MySQL using GORM
本文介绍了使用GORM在MySQL中获取NULL日期时间值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用Gorm来获取具有out_time的最后一个visit_details行作为NULL
.
NIL
本身是其中VisitDetail OutTime为mysql.NullTime
的类型.
I want to fetch the last visit_details row having out_time as NULL
using Gorm.
NIL
is itself a type where VisitDetail OutTime is mysql.NullTime
.
代码:-
var visitDetail models.VisitDetail
db.Where("out_time=? ", nil).Last(&visitDetail)
//model VisitDetails
type VisitDetail struct {
Id int
Visitor Visitor `gorm:"foreignkey:ClientId;association_foreignkey:Id"`
VisitorId int `gorm:"not null;"`
Location Location `gorm:"foreignkey:LocationId;association_foreignkey:Id"`
LocationId int `gorm:"not null;"`
Purpose string
InTime time.Time `gorm:"not null;"`
OutTime mysql.NullTime
User User `gorm:"foreignkey:ClientId;association_foreignkey:Id"`
UserId int `gorm:"not null;"`
Status int `gorm:"not null;"`
ApproveByClient int `gorm:"not null;"`
}
查询:-
select * from visit_details where out_time is NULL order by id desc limit 1;
+----+------------+-------------+---------+---------------------+----------+---------+--------+-------------------+
| id | visitor_id | location_id | purpose | in_time | out_time | user_id | status | approve_by_client |
+----+------------+-------------+---------+---------------------+----------+---------+--------+-------------------+
| 20 | 1 | 8 | | 2018-02-20 17:13:25 | NULL | 1609 | 0 | 0 |
+----+------------+-------------+---------+---------------------+----------+---------+--------+-------------------+
1 row in set (0.04 sec)
推荐答案
Go特别不能识别NULL. 我认为您可以使用GORM中的原始查询来实现. 像这样.
Go doesn't recognize NULL in particular. I think you can achieve it using a raw query in GORM. like this.
db.Raw("SELECT * FROM visit_details WHERE out_time is NULL order by id desc limit 1").Scan(&visitDetail)
这是一个获取列的对象.希望这会有所帮助.
This is one one to fetch the column. Hope this helps.
这篇关于使用GORM在MySQL中获取NULL日期时间值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文