Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Go With ziutek/mymysql中选择空时间戳_Mysql_Go - Fatal编程技术网

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

在Go With ziutek/mymysql中选择空时间戳,mysql,go,Mysql,Go,我有下面的Google Go和MySql,其中有问题的date\u update字段通常返回为NULL值 var date_update time.Time query := `SELECT date_update FROM users WHERE user_id=?` err := conn.QueryRow(query, user_id).Scan(&date_update) 当我运行此查询并碰巧收到字段的一个空值时,我收到错误不支持的驱动程序->扫描对:->*time.time

我有下面的Google Go和MySql,其中有问题的
date\u update
字段通常返回为
NULL

var date_update time.Time
query := `SELECT date_update FROM users WHERE user_id=?`
err := conn.QueryRow(query, user_id).Scan(&date_update)
当我运行此查询并碰巧收到字段的一个空值时,我收到错误
不支持的驱动程序->扫描对:->*time.time

我处理其他数据类型(例如
INT
)的方法是

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

这是一个谷歌小组,讨论的问题与你的几乎相同

这一节摘自go sql drivers/mysql的自述

time.time支持

MySQL日期和日期时间值的默认内部输出类型为[]字节,允许您在程序中将值扫描为[]字节、字符串或sql.RawBytes变量

然而,许多人希望将MySQL的DATE和DATETIME值扫描成time.time变量,这与MySQL中Go-to-DATE和DATETIME的逻辑相反。您可以通过将内部输出类型从[]字节更改为time.time,并使用DSN参数parseTime=true来实现这一点。您可以使用loc DSN参数设置默认时间。时间位置

注意:从Go 1.1开始,这使得time.time成为您可以扫描日期和日期时间值的唯一变量类型。例如,这会中断sql.RawBytes支持

或者,您可以使用NullTime类型作为扫描目标,该类型同时适用于time.time和string/[]字节

您必须将parseTime=true添加到DSN中,以便它自动解析为time.time或使用


使用mymysql

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


谢谢您抽出时间。但是,在我使用其他sql驱动程序之前,我希望在ziutek/mymysql中找到一个解决方案,因为(除了这个空问题)它已经解析为time.time类型。@BlinkyTop抱歉,我没有注意到你说你在使用mymysql,现在我将研究这个库。我还阅读了go sql驱动程序中的NullTime,但我在mymysql中没有看到类似的内容。@BlinkyTop我想您需要和的组合。
SELECT IFNULL(integer_field, 0) FROM table