![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして、こんばんは。分からないことがあり質問させていただきます。
現在、PHPにてMySQLへアクセスログを登録するものを作成しており、同じ日付に複数訪れた人は、最終日時。はじめて訪れた人はその日時を登録したいのですが、登録(または更新)する際、データベースに設定のdateカラム(datetime)を参照したとき、同じ日付をどう判別するのか?が分かりません。
以上のことから、これまで年月日のみをdateカラムに登録していたのですが、時間も登録したく考え、改め見直しているのですが、時間までをも登録した場合の日付の判別が分からないのです。
お恥ずかしいとは思うものの、現在の登録スクリプトは、
$y = date("Y");
$m = date("m");
$d = date("d");
$date = $y.$m.$d;
$sql = "insert................
それを、
$date = date("Y-m-d H:i:s");
で登録したいと考えております。
お忙しい中恐縮ですが、ご指導いただければ幸いです。
No.4ベストアンサー
- 回答日時:
DATETIMEフィールドをベースに同じ日は上書きですか・・・
それならまずINSERT INTOでその日付けがない場合はインサートして
UPDATEで更新をかければよいでしょう。
(ない場合は追加で、ある場合は更新であれば、更新は常にかけてよいので)
ちなみにDATETIME型から日付けをとるならTO_DAYS()あたりでどうですか?
http://dev.mysql.com/doc/refman/4.1/ja/date-and- …
yambejp様
こんにちは。引き続き、お忙しい中ご親切なアドバイスを有難う御座います。
お返事が遅くなってしまいましたが、yambejp様のアドバイスにより、TO_DAYS()を用いることで描いている結果を得ることが出来ました。
当初、TO_DAYS()の設置方法に戸惑いもありましたが、無事、結果を得ることが出来たのもyambejp様のアドバイスからのものと感謝しております。有難う御座いました。
No.3
- 回答日時:
DATE()でうまく出来ないならば、ごり押し技として
substring(`日付時間のカラム`,1,10)
ってことでなんとか回避するとか?
inu2様
はじめまして、こんにちは。
ご親切なアドバイスを有難う御座いました。
当初、私もinu2様が仰るように、データの文字を抽出して分別しようと考えていましたが、TO_DAYS(NOW())にて無事描いている結果を得ることが出来ました。
お忙しいなかアドバイスを有難う御座いました。
No.2
- 回答日時:
$sql = "insert into hoge set (`datetime`=now())";
datetimeタイプのフィールドであればnow()を代入すればよいでしょう。
もしくは
timestampタイプのフィールドにしておいてnullを代入する手もあります。
timestampは通常のdatetimeとは書式が違うので注意ください
yambejp様
はじめまして、こんばんは。早速のアドバイスを有難う御座います。
『謝った説明だったかと思われますが、今回お教えいただきたいのは、
$date = date("Y-m-d H:i:s");
にてDBに登録したデータを参照する際、同じ日付のときは上書き、というスクリプトを考えているのですが、時刻まで登録していることで、単純に参照・比較できずに居る次第です。』
以上は、先に追加説明?として記載させていただきましたが、このような場合、datetime ではなく、timestampの利用の方が適切なのでしょうか?それとも、登録済みのデータを参照する際、日付と時間を分割して比較するという形になるのでしょうか?
お恥ずかしい質問かと思われますが、引き続きご指導いただければ幸いに思います。お忙しい中恐縮ですが宜しくお願い申し上げます。
No.1
- 回答日時:
DATE関数を使うといいんじゃないですかね?
WHERE DATE(date) = '2007-09-05' とか。
mizuno3様
はじめまして、こんばんは。早速のアドバイスを有難う御座います。
アドバイスをいただき、先ほどからDATE関数に関して調べてながらテストしておりますが、上手く認識させることが出来ません。
謝った説明だったかと思われますが、今回お教えいただきたいのは、
$date = date("Y-m-d H:i:s");
にてDBに登録したデータを参照する際、同じ日付のときは上書き、というスクリプトを考えているのですが、時刻まで登録していることで、単純に参照・比較できずに居る次第です。
以上、引き続きご指導いただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 迷惑メール・スパム ヘルスケア テクノロジーズ 1 2023/02/13 08:23
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- 数学 登録番号と年月日と時間から作成した数字列を出来る限り小さくする方法 7 2022/06/03 16:10
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- 薬剤師・登録販売者・MR 登録販売者の研修期間について。 登録販売者試験を控えています。 約9年くらいドラッグストアにてパート 2 2022/09/04 10:19
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLのUPDATE文でサブクエリ
-
PHPとMysqlを使用した集計表の...
-
【PL/SQL】DATE型の時刻の表示...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
select文の実行結果に空白行を...
-
【PL/SQL】FROM区に変数を使う方法
-
単一グループのグループ関数で...
-
1の行を固定した上でVBAを用い...
-
データ
-
count関数の値をwhere句で使用...
-
SQL文 複数実行
-
AccessのSQL文で1件のみヒット...
-
並べ替えについて
-
枝番の最大値とその前のデータ...
-
SQL*Loader Append
-
group byの並び順を変えるだけ...
-
int型フィールドにnullを登録で...
-
レコードの登録順がおかしい
-
SELECTした合計値をそのまま割...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP+MySQLで月ごとの数量を表...
-
日替わりメッセージを表示させ...
-
【PL/SQL】DATE型の時刻の表示...
-
MySQLのUPDATE文でサブクエリ
-
PHPとMysqlを使用した集計表の...
-
Strict Standards: date() ...
-
DB登録に関する日付の認識
-
EXCELマクロのSQL文での引用符...
-
PHPでMySQL内のデータの合計値...
-
JavaScriptの条件文の応用
-
postgresのカレンダーについて
-
掲載日と更新日の管理の仕方
-
SQLでMAXを使った
-
Smarty
-
JOINを使った文で、date > now();
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
select文の実行結果に空白行を...
-
テーブルの最後(最新)のレコー...
-
count関数の値をwhere句で使用...
おすすめ情報