只需将MySQL数据库中的5位数字转换为date

我一直在网上寻找这个答案,但不明白所有写的东西。 我尝试从unix_timestamp()做,但它返回错误的date。 我所做的是将一个xls文件导入到数据库中。 它将date转换为5位数字。 有一个简单的方法吗? 任何帮助将是伟大的。 这是我所尝试过的。 我试图将Excel文件中的date格式更改为YYYY-MM-DD,但这不起作用。

要从Excel值转到,请尝试以下操作:

select date('1899-12-30') + interval <number> days 

例如:

 select date('1899-12-30') + interval 40000 days 

返回2009年7月6日,就像在Excel中一样。

换句话说,你可以把整个值作为一个整数,然后在SQL中进行转换。

我实际上有点惊讶,因为Excel上的0date基本上是1900年1月0日,也就是1899年12月31日。我怀疑在1900年缺less闰年有一个问题.Excel的值是“60”代表于二零零九年二月二十九日 这很有趣,我没有意识到Excel有这个bug。

所以,上面的代码适用于所有大于61的值。

尝试这个

  $date_format = floor($excelDateTime); $time_format = $excelDateTime - $date_format; $mysql_strdate = ($date_format > 0) ? ( $date_format - 25569 ) * 86400 + $time_format * 86400 : $time_format * 86400; $mysql_date_format = date("Ydm", $mysql_strdate);