Reputation: 23
The zero time.Time
value generated by Go
throws an error when it is inserted into MySQL DATETIME
column.
Error that I get: Error 1292: Incorrect datetime value: '0000-00-00' for column 'expires_at' at row 1
However, when I increment this time.Time
value just by 1 nanosecond or change the year to at least 2, it gets inserted without any error.
Does this mean that I cannot insert Go generated zero time.Time
values into MySQL DATETIME
column?
I'm using package sql
's Exec
to perform the INSERT
. I pass the time.Time
value as argument to Exec()
.
sess.Exec(stmt, valueArgs...)
Upvotes: 2
Views: 1794
Reputation: 36
Because MySQL DATETIME valid range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. All zero is out of range.
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
Upvotes: 2