Date and Time Data Type Syntax •MySQL automatically converts a date or time value to a number if the value is used in numeric context and vice versa. •By default, when MySQL encounters a value for a date or time type that is out of range or otherwise invalid for the type, it converts the value to the “zero”  value for that type. The exception is that out-of- range  TIME  values are clipped to the appropriate endpoint of the  TIME  range. •By setting the SQL mode to the appropriate value, you can specify more exactly what kind of dates you want MySQL to support. (See Section 5.1.11, “Server SQL Modes” .) You can get MySQL to accept certain dates, such as  ’2009-11-31’ , by enabling the  ALLOW_INVALID_DATES  SQL mode. This is useful when you want to store a “possibly wrong”  value which the user has specified (for example, in a web form) in the database for future processing. Under this mode, MySQL verifies only that the month is in the range from 1 to 12 and that the day is in the range from 1 to 31. •MySQL permits you to store dates where the day or month and day are zero in a  DATE  or  DATETIME column. This is useful for applications that need to store birthdates for which you may not know the exact date. In this case, you simply store the date as  ’2009-00-00’  or  ’2009-01-00’ . However, with dates such as these, you should not expect to get correct results for functions such as  DATE_SUB() or  DATE_ADD()  that require complete dates. To disallow zero month or day parts in dates, enable the NO_ZERO_IN_DATE  mode. •MySQL permits you to store a “zero”  value of  ’0000-00-00’  as a “dummy date.”  In some cases, this is more convenient than using  NULL  values, and uses less data and index space. To disallow ’0000-00-00’ , enable the  NO_ZERO_DATE  mode. •“Zero”  date or time values used through Connector/ODBC are converted automatically to  NULL  because ODBC cannot handle such values. The following table shows the format of the “zero”  value for each type. The “zero”  values are special, but you can store or refer to them explicitly using the values shown in the table. You can also do this using the values  ’0’  or  0 , which are easier to write. For temporal types that include a date part ( DATE ,  DATETIME , and  TIMESTAMP ), use of these values may produce warning or errors. The precise behavior depends on which, if any, of the strict and  NO_ZERO_DATE  SQL modes are enabled; see Section 5.1.11, “Server SQL Modes” . Data Type “Zero”  Value DATE ’0000-00-00’ TIME ’00:00:00’ DATETIME ’0000-00-00 00:00:00’ TIMESTAMP ’0000-00-00 00:00:00’ YEAR 0000 11.2.1 Date and Time Data Type Syntax The date and time data types for representing temporal values are  DATE ,  TIME ,  DATETIME ,  TIMESTAMP , and  YEAR . For the  DATE  and  DATETIME  range descriptions, “supported”  means that although earlier values might work, there is no guarantee. 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 2022