Closed
Description
Issue description
SELECT TIME type, if over 24 hours, leading zero are added even if less 100 hours.
Why is this? (is there any meaning? or bug?)
Please excuse my poor English, and if I missed something, I'm sorry.
Preparations (in MySQL)
CREATE TABLE time_test (
id INTEGER PRIMARY KEY,
tm TIME
);
INSERT INTO time_test (id, tm) VALUES (1, '01:12:34');
INSERT INTO time_test (id, tm) VALUES (2, '23:12:34');
INSERT INTO time_test (id, tm) VALUES (3, '123:12:34');
INSERT INTO time_test (id, tm) VALUES (4, '24:12:34');
Example code
func TestTest(t *testing.T) {
db, err := sql.Open("mysql", "your_dsn")
if err != nil {
panic(err)
} else if err = db.Ping(); err != nil {
panic(err)
}
for id := 1; id <= 4; id++ {
rows, err := db.Query(`SELECT id, tm FROM time_test WHERE id = ?`, id)
if err != nil {
t.Fatal(err)
}
if !rows.Next() {
t.Fatal("no rows found")
}
var holder struct {
ID int
Tm string
}
err = rows.Scan(&holder.ID, &holder.Tm)
if err != nil {
t.Fatal(err)
}
rows.Close()
fmt.Printf("id %d: %q\n", holder.ID, holder.Tm)
}
}
Output
id 1: "01:12:34"
id 2: "23:12:34"
id 3: "123:12:34"
id 4: "024:12:34"
... ❓
Configuration
Driver version (or git SHA): v1.4.0
Go version: go1.10.3 darwin/amd64
Server version: MySQL 5.7
Server OS: macOS 10.13.5