
- Learn MySQL
- MySQL - Home
- MySQL - Introduction
- MySQL - Installation
- MySQL - Administration
- MySQL - PHP Syntax
- MySQL - Connection
- MySQL - Create Database
- MySQL - Drop Database
- MySQL - Select Database
- MySQL - Data Types
- MySQL - Create Tables
- MySQL - Drop Tables
- MySQL - Insert Query
- MySQL - Select Query
- MySQL - Where Clause
- MySQL - Update Query
- MySQL - Delete Query
- MySQL - Like Clause
- MySQL - Sorting Results
- MySQL - Using Join
- MySQL - NULL Values
- MySQL - Regexps
- MySQL - Transactions
- MySQL - Alter Command
- MySQL - Indexes
- MySQL - Temporary Tables
- MySQL - Clone Tables
- MySQL - Database Info
- MySQL - Using Sequences
- MySQL - Handling Duplicates
- MySQL - SQL Injection
- MySQL - Database Export
- MySQL - Database Import
How to fix the incorrect datetime value while inserting in a MySQL table?
To avoid the incorrect datetime value error, you can use the STR_TO_DATE() method.
As we know the datetime format is YYYY-MM-DD and if you won’t insert in the same format, the error would get generated.
Let us see what actually lead to this error. For this, let us create a new table. The query to create a table is as follows
mysql> create table CorrectDatetimeDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > ArrivalTime datetime - > ); Query OK, 0 rows affected (0.63 sec)
The occurs when we try to include a date with an incorrect datetime format
mysql> insert into CorrectDatetimeDemo(ArrivalTime) values('18/02/2019 11:15:45'); ERROR 1292 (22007): Incorrect datetime value: '18/02/2019 11:15:45' for column 'ArrivalTime' at row 1
To avoid the above error, you can use STR_TO_DATE().
The syntax is as follows
INSERT INTO yourTableName(yourDateTimeColumnName) VALUES (STR_TO_DATE('yourDateTimeValue','%d/%m/%Y %H:%i:%s'));
Now, let us insert the datetime again with the correct format as shown in the above syntax.
The query is as follows
mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('18/02/2019 11:15:45','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.21 sec) mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('15/01/2017 10:10:15','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.16 sec) mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('12/04/2016 15:30:35','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.20 sec)
Display all records from the table using select statement.
The query is as follows
mysql> select *from CorrectDatetimeDemo;
The following is the output
+----+---------------------+ | Id | ArrivalTime | +----+---------------------+ | 1 | 2019-02-18 11:15:45 | | 2 | 2017-01-15 10:10:15 | | 3 | 2016-04-12 15:30:35 | +----+---------------------+ 3 rows in set (0.00 sec)
- Related Articles
- How to convert positive value to negative while inserting in MySQL?
- Display an error while inserting duplicate records in a MySQL table
- Can we use INTERVAL keyword while inserting date records in a MySQL table?
- Fix Error in MySQL syntax while creating a table column with name “index”?
- Format date while inserting records in MySQL
- Inserting the current datetime in MongoDB?
- Inserting random numbers into a table in MySQL?
- Fix ERROR 1064 (42000) while creating a database in MySQL?
- Set particular value of column without using update and while inserting values in MySQL
- Fix ERROR 1093 (HY000): You can't specify target table for update in FROM clause while deleting the lowest value from a MySQL column?
- Can we skip a column name while inserting values in MySQL?
- Update the date and time values while inserting them in MySQL
- Fix Drop table view #1051 unknown table error in MySQL
- Adding a day to a DATETIME format value in MySQL?
- How to check if a datetime value equals tomorrows date in MySQL?

Advertisements