Vishal Kumar Sahu Vishal Kumar Sahu - 4 months ago 14
SQL Question

DATETIME and TIMESTAMP Length/Values Error

I was using int type for storing date/time. For the convenience of getting the data in specific range from MySQL, I tried changing it to

TIMESTAMP/DATETIME
but it is giving the error as in the attached image in both the cases. The format for datatype
TIMESTAMP/DATETIME
is
YYYY-MM-DD HH:MM:SS
which is 19 character long.

I could not get a proper tutorial/article as I could start from beginning.

Error Image

Answer

When defining a DATETIME or TIMESTAMP field, there's no need to specify the length.

This is what the error message refers to:

A DATETIME or TIMESTAMP value can include a trailing fractional seconds part in up to microseconds (6 digits) precision

MySQL permits fractional seconds for TIME, DATETIME, and TIMESTAMP values, with up to microseconds (6 digits) precision. To define a column that includes a fractional seconds part, use the syntax type_name(fsp), where type_name is TIME, DATETIME, or TIMESTAMP, and fsp is the fractional seconds precision. For example:

CREATE TABLE t1 (t TIME(3), dt DATETIME(6));

Abstract from CREATE TABLE Syntax:

| TIME[(fsp)]
| TIMESTAMP[(fsp)]
| DATETIME[(fsp)]

Documentation:

Comments