mysql:8704
From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Thu, 05 Feb 2004 11:54:33 +0900
Subject: [mysql 08704] Re: 日付のデータタイプについて
こんにちは。 きたぢま <kitajima@xxxxxxxxxx>さんの <20040205104216.D826.KITAJIMA@xxxxxxxxxx> "[mysql 08703] Re: 日付のデータタイプについて" > 日時の目的と用途によって変わると思いますが、僕の感想としては > DATETIME型で定義しておくと日付け関数の恩恵(結構な数用意されている)にあず > かりやすいという点がメリットでしょうか。 > > 例:DAYOFWEEK(date) ・・・・dateの曜日を返します。(1=日曜日...) > > また、YYYY/DD/MM書式をTIME値(INT)に変換するのも自分でやると面倒ですが、 > これもSQLの関数に任せることもできます。 > つまり、PHPで計算処理するよりもっと簡単になる…。 > 任せれるものは任せる。これがバグを減らす鉄則です。(自論!?) この点はきたじまさんご指摘の通りと考えます。日付や時刻を扱う型が存在す るのですから、シンプルにそれを使えば良いと考えます。数値型や文字列型で日 付や時刻を扱うのは、その場ではよさげに見えても実はトラブルの元ですね。 > ただ、新旧比較・ソートだけならINTでも十分でしょう。 UNIXTIME=標準Cライブラリのtime_t型で良いでしょうか?time_t型がどの様 な実体を持つかは実装依存ですが、現在の実装は符号付き32bit整数が主流でし ょう。この事から2038年問題が発生しますし、最近ではその前駆的な障害が発生 しています。 スラッシュドットの記事、「2038年問題、早くも顕在化」 http://slashdot.jp/article.pl?sid=04/02/03/031211 という事で、INT型フィールドにtime_t型の値をぶち込むのは、あまり宜しく ない実装と言えるでしょう。またTIMESTAMP型も、単純に考えれば危険性を孕ん でいる可能性があると言えます。この点に関し、MySQL ABはどの様な見解を示し ているのでしょうか? 松枝知直 <tomom@xxxxxxxxxx> http://www.argus.ne.jp/~tomom/
8702 2004-02-05 01:14 [Masaki Nohtomi <narf] 日付のデータタイプについて 8703 2004-02-05 10:50 ┗[きたぢま <kitajima@x] -> 8704 2004-02-05 11:54 ┗[ML account <ml@xxxxx] 8707 2004-02-05 14:27 ┗[Masaki Nohtomi <narf]