質問: 日付形式のデータをintergerに格納する方法を教えてください。 date型が扱えないデータベース(sqlite)があり、日付データの移行で困っています。どうやら、1199488339が2008/01/05らしいのですが、 どういう計算で値を出しているのかわかりません。
回答: 1199488339 はUNIXタイムスタンプ(※)と思われます。 ※「Unix epoch(1970年1月1日 00:00:00 GMT))からの通算秒」 sqlite とのことで、ひょっとしてプログラム言語にPHPをお使いでしょうか? であれば日付・時刻関数で相互変換ができると思います。 ``` ``` ``` 2008/01/05 08:12:19 ``` ``` ``` ``` 1199488339 1199545200 ``` ``` ``` ``` 1199113200 ``` また日付形式のデータですが、 integer で格納するほかに、 '2008/01/05 08:12:19' のように文字列で格納してしまう というのも手だと思います。 (要求やら仕様やらと照らし合わせて可能であればですが) なお、タイプスタンプを32bit符号付き整数で扱う環境だと2038年以降の日付を扱う際に問題が生じると思うので、先々まで使うシステム or 未来の日付を扱うシステムでは、PEAR::Date 等の使用を検討された方がいいかもしれません。 sqlite は本格的に触ったことがないので、はずしていたらすみません。