0
0

More than 3 years have passed since last update.

SQLから当日分のデーターを入手したい時

Posted at

ポートフォリオ作成時に当日投稿された数を表記する機能を実施しようとして苦戦したので、忘備録として残しておく

やりたい事はその日に投稿された投稿数をカウントしてその数を表示するという物

DBに保存されている投稿日時はDATETIME型で保存されている。
ならば当日の日付と投稿日時の日付が同じという条件付けでいけるだろうと安易に以下のコードを作成

カラム:creat_time DATETIME型

$counts = $db->query('SELECT COUNT(*) AS cnt FROM posts WHERE create_time = CURDATE()');
$todayCount = $counts->fetch();

反映されない・・・・・・

何故だ・・・と2時間ほどネットの海を彷徨っていると、
DATETIME型は「2020-05-08 21:33:54」のように日付と時刻までを取得する
それに対してCURDATEは「2020-05-08」と時刻は取得されない。という情報を発見

もうちょい調べるとCURDATEではなく日付を直接入力した場合、
 2020-05-08 21:33:54 = 2020-05-08と入力しても実際は

 2020-05-08 21:33:54 = 2020-05-08 00:00:00と認識されるとのこと。

これはCURDATEにも当てはまるのか試したところ、

$counts = $db->query('SELECT COUNT(*) AS cnt FROM posts WHERE create_time >= CURDATE()');
$todayCount = $counts->fetch();

反映された!!!

SQLで条件付けする時にはどのような形で保存されているのかよく確認する必要があると思い知らされました・・・

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0