首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Go With ziutek/mymysql中选择空时间戳

问在Go With ziutek/mymysql中选择空时间戳
EN

Stack Overflow用户
提问于 2014-08-19 06:59:30
回答 1查看 1.3K关注 0票数 2

我有下面的Google和MySql,其中date_update字段通常作为NULL值返回。

代码语言:javascript
复制
var date_update time.Time
query := `SELECT date_update FROM users WHERE user_id=?`
err := conn.QueryRow(query, user_id).Scan(&date_update)

当我运行此查询并碰巧收到该字段的一个空值时,我将收到错误unsupported driver -> Scan pair: <nil> -> *time.Time。

使用其他数据类型(例如INT)处理此问题的方法是

代码语言:javascript
复制
SELECT IFNULL(integer_field, 0) FROM table

但它似乎不适用于时间戳或日期时间。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 08:33:14

这是一个google组讨论,它讨论的问题与你的问题几乎相同。

这一节摘自go-sql驱动程序/mysql 存储库的自述文件。

time.Time support MySQL日期和日期时间值的默认内部输出类型是[]字节,它允许您将值扫描到程序中的[]字节、字符串或sql.RawBytes变量中。 但是,许多人希望将MySQL日期和日期时间值扫描到time.Time变量中,这与MySQL中的Go to DATE和DATETIME的逻辑相反。您可以通过使用DSN参数time.Time将内部输出类型从[]字节更改为parseTime=true来实现。可以使用loc参数设置默认的time.Time位置。 警告:从Go 1.1开始,time.Time是唯一可以扫描日期和日期时间值的变量类型。例如,这破坏了sql.RawBytes支持。 或者,您可以使用NullTime类型作为扫描目标,它可以同时处理time.Time和string /[]字节。

您必须将parseTime=true添加到您的DSN中,这样它才能自动解析到time.Time中,或者使用NullTime。

使用mymysql

您可以尝试使用特定的id来选择行&然后使用以下函数之一:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25377347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档