PHPを使用してMySQLデータベースにアクセスしています。日付がUNIXタイムスタンプとして保存された特定の日付のMySQLフィルタ
表ヘッダー:
- ID(INT、オートインクリメント)、プロファイルID、タイムスタンプ
表含量:
- 1、私はこのような構築テーブルを持っています12345678,1513814399(= 12/21/2017)
- 2,13451983,1513814400(= 12/21/2017)
- 3、12345678、1513944000(= 2017年12月22日)
- 4、12345678、1513944001(= 2017年12月22日)
は、profileIDはれるウェブサイトの訪問者によって呼び出されたテーブルショー時間。
私の質問は今のところどのように表示できるのですか? "この場合は" 12/22/2017に呼び出されたプロファイル番号12345678のエントリ数を教えてください " 。
私はこのクエリでそれを試してみました:
SELECT COUNT(profileid), from_unixtime(timestamp, '%d') AS day, from_unixtime(timestamp, '%m') as month, from_unixtime(timestamp, '%Y') as year WHERE profileid='12345678' AND day=22 AND month=12 AND year=2017;
しかし、彼らはテーブルに存在しないことがあるため、「日」、「月」の列にアクセスすることはできませんし、「年」。
誰かに私にこのことを伝える方法を教えてもらえますか?もう1つの方法は、3つの新しい列(timestamp_day、timestamp_month、timestamp_year)を作成することですが、それは素晴らしい解決策ではありません。
ありがとうございます!
テハ
「タイムスタンプ」フィールドにはどのようなデータ型がありますか?なぜそれを "日付"として直接設定しないのですか?あなたが望むように変換が必要なフォーマットで保存する必要はないようです。 –
MySQLには、日付フィールドに適用できる 'DAY()'、 'MONTH()'、 'YEAR()などの日付関数があります。 'https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html –
ご意見ありがとうございます。整数型です。私はそれが正直であることに慣れているので、それは好きです。時間差を計算するのはいいことです。 – teha