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中正确转换为日期格式?
非常感谢
答案 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不是问题,传输的数据是错误的。
感谢您的回复!