dポイントプレゼントキャンペーン実施中!

初投稿です。うまく伝えれるかわかりませんがみなさんきいてください
WEBページから入力した日付をMySQLに登録するときはchar型で登録してもいいんでしょうか?
登録の感じは20080910(2008年9月10日)で8桁で登録しています。(insert)
次に日付の開始日~終了日を入力して開始日から終了日に当てはまるデータを取り出すといったことをします。
↑で登録した日付を取り出したいのです。
しかしselect文で日付検索をする場合は2008-01-01と間にハイフンが入っていることに気づきました。
と言う事は登録のときに2008-09-10といった感じでchar型の10桁指定で登録したほうがいいんでしょうか?
説明不足かもしれませんが皆さん協力お願いします。

A 回答 (2件)

せっかく、RDBMSを使うのでしたら、日付や時刻は文字列型で持つのは止めた方がいいでしょう。

DATE型で持つべきでしょう。
プログラムから発行するSQL文では、文字列として渡すことになります。そのときの書式は'2008-09-10'といった形ですが、テーブル上では文字列として持つわけじゃないです。
DATE型またはDATETIME型で持つ利点は
・現在時刻の取り扱いが容易
・限定されてはいるが、演算も可能
・誤った日付2008-13-41などは入らない
etc
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
日付はDATE型で登録してみます。利点も多いようですし。
詳しい回答ありがとうございました。

お礼日時:2008/07/24 14:32

ANo.1のご回答にあるようにデータベースでは日付型を使った方がよさそうです。



もし、今のまま文字型を使われるのでしたら、データ側でハイフンを入れるよりも、select文のwhere句の条件側を"2008-01-01"とならないようにし"20080101"と編集した方がいいのかなあと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
文字型のままだと"20080101"でいいんですね。勉強になります。
教えてgoo初投稿でしたが便利なサイトですねw
協力ありがとうございました。

お礼日時:2008/07/24 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す