重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

php数ヶ月の初心者です。
予約システムをゆっくり作ってみようと思うのですが
何から何までわからない事ばかりなのでどうぞよろしくお願いします。


◆カラムの型について
予約時間のテンプレートのようなDBを作成しようとしていますが
時間に関係するカラムをtime型としました。time型のところに
データーを挿入する際には必ず 例えば10:00:00のように秒まで
入ってしまうという理解でよろしいのでしょうか?
(time型である限り、10:00という形では入れられず、10:00:00と
しなければいけないのですかという質問です。)



◆例えば、$_GET['time']の値が(10:00)だとして、それが
DBのカラム(rsvTime)のデーター(10:00:00)と一致したものをセレクト
したい場合は

select * from DB where rsvTime =・・・
の続きはどのように記述したら良いですか?
(もしくは違う記述でも結構です。)



◆time型の足し算
(日付とか関係なく、10:00+30分=10:30というような事をしたい時の話です。)
みたいな事をしたいのですが、
予約時間($rsvTime)の30分後が施術をスタートする時間($startTime)だと
した場合、$startTimeはどのように求めるのでしょうか?


要領を得ない質問かもしれませんが宜しくお願いいたします。

A 回答 (3件)

#もっぱらMySQLの話ですね(汗



MySQLでの取り扱いに関しては、まずはMySQLのマニュアルを読んでください。

http://dev.mysql.com/doc/refman/5.1/ja/time.html

「'HH:MM:SS' フォーマットで検索、表示」するので、where条件で書くときは直接文字列型と比較してもいいですし、(日付時刻関数の)date_formatで任意の形式の文字列にしてから比較してもいいです。またMySQL側で時間の計算をするなら、同様に日付時刻関数で行えます。

・select * from DB where rsvTime = '10:00:00'
・select * from DB where date_format(rsvTime, '%H%i)' = '1000'

http://dev.mysql.com/doc/refman/5.1/ja/date-and- …

・select addtime(rsvTime, '00:30:00') as startTime from DB
    • good
    • 0
この回答へのお礼

すばやいご回答ありがとうございます。
またご丁寧に解説も加えていただき勉強になりました。
(sql側で色々できるのは初めて知りました。)

知識不足のため参考URLは自力で読み解く事はできません
でしたが、参考にさせていただきながらゆっくり紐解いて
いこうと思います。

ありがとうございました。

お礼日時:2013/04/30 17:30

失礼しました


テンプレについてはtime型でよいと思います
実際の予約データをdatetimeで管理すればよいでしょう。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

少しづつですが、形が見えてきた気がします。
作りこむ程にさらに疑問が出そうですが、その際
お暇ならまたアドバイスをいただけたらと思います。

お礼日時:2013/04/30 19:47

予約システムをつくるならデータはdatetime型がよろしいのでは?



datetime型のカラムであれば、「カラム+interval 30 minute」的な
直観的な書式も利用できます。

この回答への補足

予約候補時間のテンプレートとしてのカラム(予約時間)だとしても
型はdatetimeなのでしょうか?

つまり、あるコースの予約は毎日10:00と12:00と15:00だと
する場合に、この時間には日付の概念はないのですが、これらを収めるカラムの
型がdatetimeの型でできるのでしょうか?

補足日時:2013/04/30 17:52
    • good
    • 0
この回答へのお礼

参考になる知識ありがとうございます。

[カラム+interval 30 minute]
何やら非常に使えそうな感じはしますが、どのように
使うのかが。。。勉強していかないとです。

ご回答ありがとうございました。

お礼日時:2013/04/30 18:09

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