2

私はこの答えを求めてウェブ全体を見てきましたが、書かれているすべてのことを理解していません. from unix_timestamp() を実行しようとしましたが、間違った日付が返されます。私が行ったことは、xlsファイルをデータベースにインポートすることです。日付を 5 桁の数字に変換しました。簡単な方法はありますか?どんな助けでも素晴らしいでしょう。これは私が試したものです。Excel ファイルの日付形式を YYYY-MM-DD に変更しようとしましたが、うまくいきませんでした。

4

2 に答える 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 に答える