gpt4 book ai didi

mysql - Excel 导入 MySQL : Date inserted as 0000-00-00

转载 作者:行者123 更新时间:2023-11-29 01:11:28 26 4
gpt4 key购买 nike

我用过PHPExcel库导入 Excel 文件 (.xlsx) 并插入 MySQL。我在日期字段中遇到了两个问题:

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

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

请帮忙!

最佳答案

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

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

关于mysql - Excel 导入 MySQL : Date inserted as 0000-00-00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com