Date and Time Type Storage Requirements Leftover Digits Number of Bytes 8 4 Date and Time Type Storage Requirements For  TIME ,  DATETIME , and  TIMESTAMP  columns, the storage required for tables created before MySQL 5.6.4 differs from tables created from 5.6.4 on. This is due to a change in 5.6.4 that permits these types to have a fractional part, which requires from 0 to 3 bytes. As of MySQL 5.6.4, storage for  YEAR  and  DATE  remains unchanged. However,  TIME ,  DATETIME , and TIMESTAMP  are represented differently.  DATETIME  is packed more efficiently, requiring 5 rather than 8 bytes for the nonfractional part, and all three parts have a fractional part that requires from 0 to 3 bytes, depending on the fractional seconds precision of stored values. Data Type Storage Required Before MySQL 5.6.4 Storage Required as of MySQL 5.6.4 YEAR 1 byte 1 byte DATE 3 bytes 3 bytes TIME 3 bytes 3 bytes + fractional seconds storage DATETIME 8 bytes 5 bytes + fractional seconds storage TIMESTAMP 4 bytes 4 bytes + fractional seconds storage Fractional Seconds Precision Storage Required 0 0 bytes 1, 2 1 byte 3, 4 2 bytes 5, 6 3 bytes For example,  TIME(0) ,  TIME(2) ,  TIME(4) , and  TIME(6)  use 3, 4, 5, and 6 bytes, respectively.  TIME and  TIME(0)  are equivalent and require the same storage. For details about internal representation of temporal values, see MySQL Internals: Important Algorithms and Structures. String Type Storage Requirements In the following table,  M  represents the declared column length in characters for nonbinary string types and bytes for binary string types.  L  represents the actual length in bytes of a given string value. Data Type Storage Required CHAR( M ) The compact family of InnoDB row formats optimize storage for variable-length character sets. See COMPACT Row Format Storage Characteristics. Otherwise,  M  ×  w  bytes,  <=  M  <=  255, where  w is the number of bytes required for the maximum- length character in the character set. BINARY( M ) M  bytes, 0  <=  M  <=  255 2089