Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel导入MySQL:插入日期为0000-00-00_Mysql_Date_Phpexcel - Fatal编程技术网

Excel导入MySQL:插入日期为0000-00-00

Excel导入MySQL:插入日期为0000-00-00,mysql,date,phpexcel,Mysql,Date,Phpexcel,我使用这个库导入了一个Excel文件(.xlsx)并插入到MySQL中。“日期”字段有两个问题: 1-在excel工作表中,我尝试将日期格式更改为所需的格式。保存后,单元格显示我需要的格式(yyyy/mm/dd),但当我双击编辑它们时,它们再次更改为(mm/dd/yyyy)之前的格式 2-通过PHPExcel将文件导入MySQL时,除了插入0000-00-00的日期列之外,所有列都正确插入。Excelsheet中的格式与MySQL中的格式相同,但输入的全是零 请帮忙 将日期格式更改为yyyy-m

我使用这个库导入了一个Excel文件(.xlsx)并插入到MySQL中。“日期”字段有两个问题:

1-在excel工作表中,我尝试将日期格式更改为所需的格式。保存后,单元格显示我需要的格式
(yyyy/mm/dd)
,但当我双击编辑它们时,它们再次更改为
(mm/dd/yyyy)
之前的格式

2-通过PHPExcel将文件导入MySQL时,除了插入
0000-00-00
的日期列之外,所有列都正确插入。Excelsheet中的格式与MySQL中的格式相同,但输入的全是零


请帮忙

将日期格式更改为
yyyy-mm-dd
,将文件另存为CSV并导入数据库。

PHPExcel中存储的值是Excel序列化的日期时间值(一个浮点数,表示1900年1月1日或9004年1月1日后的天数,具体取决于使用的是Windows还是Mac日历)。更改格式只是更改此值的显示方式


您需要提前知道单元格是否包含日期,或者使用
PHPExcel\u Shared\u date::isDateTime()
方法对其进行测试,并对其进行适当转换。然后,您可以使用
getFormattedValue()
检索它,以格式化字符串的形式返回值;或者使用内置的转换函数将其转换为unix时间戳(
PHPExcel\u Shared\u Date::ExcelToPHP()
)或PHP日期时间对象(
PHPExcel\u Shared\u Date::ExcelToPHPObject()
),在MySQL INSERT/UPDATE语句中使用之前,您可以使用标准的PHP日期格式化函数对其进行格式化。

是。用于在Excel中查看的格式与导入方式无关。您需要将excel文件中的实际值更改为yyyy-mm-dd,或者在插入数据库之前自己进行转换。@MikeBrant这就是问题所在。我将实际值更改为需要的值并保存。但当再次编辑时,它又回到了原来的版本。我把我的Excel表格转换成CSV格式,然后阅读这些表格,但我想为了得到准确的日期值,我还是要使用Excel库