将日期插入sql数据库

时间:2013-12-03 04:57:15

标签: java mysql sql

我的输入日期格式是'%m-%d-%Y'(例如:12/12/2012)和我执行的查询

"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的转换

4 个答案:

答案 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+"')";

答案 1 :(得分:0)

您必须考虑表格的StartedDate字段的类型来格式化输入的数据

然后使用DATEDATETIMETIMESTAMP

类型中的特定格式

The DATE, DATETIME, and TIMESTAMP Types

Date and Time Functions

使用上面列出的DATE_FORMAT日期和时间函数,然后区分字段类型的正确格式

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

答案 2 :(得分:0)

据我所知,你说你的输入日期是

12/12/2012

但是你给了

'%m-%d-%Y'

到STR_TO_DATE。这对我来说不太合理。

你不应该给

'%m/%d/%Y'

到STR_TO_DATE?

答案 3 :(得分:-1)

在php中你应该使用

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