2013-12-03 4 views
0

Мой формат даты ввода «% m-% d-% Y» (например: 12/12/2012), и мой запрос для выполненияДата вставки в базу данных SQL

"Insert into employeedetails(FirstName,LastName,JobTitle,StartedDate,Salary,CompanyName) values ('"+fname+"','"+lname+"','"+job+"',STR_TO_DATE('"+date+"', '%m-%d-%Y'),'"+salary+"','"+company+"')"; 

при выполнении запроса он выдает сообщение об ошибке о некорректном формате

Когда я вручную вставить дату в этом формате (2012-12-12) он работает, поэтому мне нужно преобразование от 12/12/2012 до 2012-12-12

+0

какой тип поля StartedDate на вашем столе. Вы должны это рассмотреть. –

+0

попробуйте это ... DATE_FORMAT (NOW(), '% m-% d-% Y'); – Zeeshan

+0

Можете ли вы предоставить нам точный тип данных для столбца базы данных. Это может быть DATETIME, TIMESTAMP, DATE и т. Д. –

ответ

-1

в PHP вы должны использовать

"Insert into employeedetails(FirstName,LastName,JobTitle,StartedDate,Salary,CompanyName) values 
('".$fname."','".$lname."','".$job."','".date('d/m/Y')."','".$salary."','".$company."')"; 
+0

укажите причину -1 для этого ответа –

+1

Я не спустил вниз, но OP отметил вопрос 'java', а код, очевидно, не PHP. –

+0

ОК, я пропустил это, неважно. помните о тегах и –

1

ИСПОЛЬЗОВАНИЕ DATE_FORMAT

Следующий скрипт использует функцию DATE_FORMAT() для отображения различных форматов. Пример с now()

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') 
DATE_FORMAT(NOW(),'%m-%d-%Y') 
DATE_FORMAT(NOW(),'%d %b %y') 
DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 


Insert into employeedetails(FirstName,LastName,JobTitle,StartedDate,Salary,CompanyName) values ('"+fname+"','"+lname+"','"+job+"',DATE_FORMAT(NOW(), '%m-%d-%Y'),'"+salary+"','"+company+"')"; 
0

Вы должны учитывать тип StartedDate поля вашей таблицы для форматирования данных которые вводятся

затем использовать специфическое форматирование типа DATE, DATETIME, TIMESTAMP

The DATE, DATETIME, and TIMESTAMP Types

Date and Time Functions

с помощью DATE_FORMAT перечисленных выше функций даты и времени, то distinguising правильного формата для поля типа

DATE_FORMAT($datetoformat,'%Y-%m-%d'); // for date format 
DATE_FORMAT($datetoformat,'YYYY-MM-DD HH:MM:SS'); // datetime format 
0

Насколько я могу видеть вас говорит, что ваша дата ввода выглядит

12/12/2012 

но вам дать

'%m-%d-%Y' 

до STR_TO_DATE. Это не очень правдоподобно для меня.

вы не должны давать

'%m/%d/%Y' 

в STR_TO_DATE?

Смежные вопросы