STR_TO_DATE MySQL交换月/日值

时间:2014-10-16 05:47:49

标签: php mysql date

GD All,

当使用PHP将我的数据插入MySQL数据库时,我使用POST方法将值传递给脚本。

使用STR_TO_DATE函数尝试将正确的日期插入MySQL中的日期字段

但是,尽管使用相同的格式传递给STR_TO_DATE函数(dteReportDate = 14-10-2014),当月值< = 12时,MySQL函数显然会交换月和日值?

所以,如果我在导入PHP中输入14-10-2014,如果我输入09-10-2014完全相同的例程,它会在表格中输入2014-10-14作为2014-09 -10 ??

如何在PHP脚本或其他任何地方更正此问题?

我尝试了几种选择: - 将STR_TO_DATE函数的输入改为各种格式(YYYY / MM / DD,dd-mm-yyyy等等。错误保持不变 - 将输入数据直接改为字符串以进行输入: 即代替使用

    INSERT INTO tbl ('date') VALUES (STR_TO_DATE(dateString,'%Y/%m/%d')

你会用

    INSERT INTO tbl ('date') VALUES (dateString)

根据MySQL默认情况,其中datestring的格式为“yyyy-mm-dd”。 (也不起作用)

那么如何正确编写脚本以便我的输入字符串在MySQL中正确转换为日期格式?

非常感谢

3 个答案:

答案 0 :(得分:0)

SQL 数据库中的接受日期格式为Y-m-d(您将从PHP date找到不同的日期格式。)

如果数据来自提交的表单

$date=date('Y-m-d',strtotime($_POST["date"]));

如果您要插入的日期是今天且静态

$date=date('Y-m-d');

你的查询会是这样的:

INSERT INTO tbl ('date') VALUES ('$date')

答案 1 :(得分:0)

您使用PHP内置函数:

$datevar=   date_create_from_format(); 

之后您可以使用$ date varible发布格式化功能。

$datevar->format()

答案 2 :(得分:0)

GD All,

非常感谢您的回复,错误发生在此过程的早期阶段。

STR_TO_DATE不是问题,传输的数据是错误的。

感谢您的回复!