私はこの答えを求めてウェブ全体を見てきましたが、書かれているすべてのことを理解していません. from unix_timestamp() を実行しようとしましたが、間違った日付が返されます。私が行ったことは、xlsファイルをデータベースにインポートすることです。日付を 5 桁の数字に変換しました。簡単な方法はありますか?どんな助けでも素晴らしいでしょう。これは私が試したものです。Excel ファイルの日付形式を YYYY-MM-DD に変更しようとしましたが、うまくいきませんでした。
質問する
3946 次
2 に答える
3
Excelの値から移動するには、これを試してください:
select date('1899-12-30') + interval <number> days
例えば:
select date('1899-12-30') + interval 40000 days
Excel と同じように、2009 年 7 月 6 日を返します。
つまり、値を整数として取り込んでから、SQL で変換を行うことができます。
Excel の 0 の日付は本質的に 1900 年 1 月 0 日、つまり 1899 年 12 月 31 日であるため、実際には少し驚いています。1900 年に閏年がないことに問題があると思われます。 1900 年 2 月 29 日として表されます。これは面白いです。Excel にこのバグがあることを知りませんでした。
したがって、上記のコードは、61 より大きいすべての値に対して機能します。
于 2013-03-23T19:54:53.593 に答える
3
これを試して
$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("Y-d-m", $mysql_strdate);
于 2013-10-25T06:42:17.547 に答える