5.30.1 Problem
You want a string to be interpreted temporally.
5.30.2 Solution
Use the string in a temporal context to give MySQL a hint about how to treat it.
5.30.3 Discussion
If you need to make MySQL treat a string as a date or time, use it in an expression that provides a temporal context without changing the value. For example, you can't add zero to a literal TIME string to cause a time-to-number conversion, but if you use TIME_TO_SEC( ) and SEC_TO_TIME( ), you can:
mysql> SELECT SEC_TO_TIME(TIME_TO_SEC('12:30:45'))+0; +----------------------------------------+ | SEC_TO_TIME(TIME_TO_SEC('12:30:45'))+0 | +----------------------------------------+ | 123045 | +----------------------------------------+
The conversion to and from seconds leaves the value unchanged but results in a context where MySQL treats the result as a TIME value. For date values, the procedure is similar, but uses TO_DAYS( ) and FROM_DAYS( ):
mysql> SELECT '1999-01-01'+0, FROM_DAYS(TO_DAYS('1999-01-01'))+0; +----------------+------------------------------------+ | '1999-01-01'+0 | FROM_DAYS(TO_DAYS('1999-01-01'))+0 | +----------------+------------------------------------+ | 1999 | 19990101 | +----------------+------------------------------------+
For DATETIME- or TIMESTAMP-formatted strings, you can use DATE_ADD( ) to introduce a temporal context:
mysql> SELECT -> DATE_ADD('1999-01-01 12:30:45',INTERVAL 0 DAY)+0 AS 'numeric datetime', -> DATE_ADD('19990101123045',INTERVAL 0 DAY)+0 AS 'numeric timestamp'; +------------------+-------------------+ | numeric datetime | numeric timestamp | +------------------+-------------------+ | 19990101123045 | 19990101123045 | +------------------+-------------------+
Using the mysql Client Program
Writing MySQL-Based Programs
Record Selection Techniques
Working with Strings
Working with Dates and Times
Sorting Query Results
Generating Summaries
Modifying Tables with ALTER TABLE
Obtaining and Using Metadata
Importing and Exporting Data
Generating and Using Sequences
Using Multiple Tables
Statistical Techniques
Handling Duplicates
Performing Transactions
Introduction to MySQL on the Web
Incorporating Query Resultsinto Web Pages
Processing Web Input with MySQL
Using MySQL-Based Web Session Management
Appendix A. Obtaining MySQL Software
Appendix B. JSP and Tomcat Primer
Appendix C. References