MySQLのFROM_UNIXTIME()関数でTIMESTAMPデータ型の開始範囲を確認する方法
FROM_UNIXTIME()関数でTIMESTAMP型の開始範囲を確認する
MySQLのFROM_UNIXTIME()関数は、Unixタイムスタンプ(秒数)をTIMESTAMP型の日時値に変換する関数です。この性質を利用すると、TIMESTAMPデータ型の範囲がどこから始まるのかを簡単に確認できます。
0秒を指定した場合
引数に「0」を指定すると、Unixエポック(1970年1月1日 00:00:00 UTC)に対応する日時が返されます。これがTIMESTAMPデータ型の範囲の開始点です。
mysql> Select FROM_UNIXTIME(0);
+-------------------------+
| FROM_UNIXTIME(0) |
+-------------------------+
| 1970-01-01 05:30:00 |
+-------------------------+
1 row in set (0.00 sec)
上記の結果は「1970-01-01 05:30:00」と表示されています。これは、MySQLサーバーのタイムゾーンがUTC+5:30(インド標準時など)に設定されているため、UTCの1970年1月1日0時0分0秒が現地時間に変換されて表示されるからです。実行環境のタイムゾーンによって、表示される時刻は異なります。
60秒を指定した場合
次に、引数を「0」から「60」に変更してみましょう。すると、結果の日時がちょうど1分進んだ値になります。
mysql> Select FROM_UNIXTIME(60);
+-------------------------+
| FROM_UNIXTIME(60) |
+-------------------------+
| 1970-01-01 05:31:00 |
+-------------------------+
1 row in set (0.00 sec)
このように、FROM_UNIXTIME()関数に渡す秒数を変えることで、TIMESTAMP型の範囲の開始値や、その後の日時を自由に確認することができます。
-
PHPスクリプトでMySQLテーブルの全レコードを表示する方法
PHPスクリプトでMySQLテーブルの全レコードを表示する方法本記事では、PHPを使ってMySQLテーブル内のすべてのレコードを取得し、画面に表示する方法を解説します。サンプルとして、「tutorials_tbl」という名前のテーブルから全レコードを取り出す処理を見ていきましょう。従来のPHPでは、SQL文の実行にmysql_query()関数を、実行結果から1行ずつデータを取り出すのにmysql_fetch_array()関数を使用するのが一般的でした。まずはその基本的なコード例から確認します。<?php $dbhost = localho
-
MySQLビューを使って日付範囲から連続日付を生成する方法
MySQLには、他のデータベース製品のような連番生成関数やカレンダーテーブルが標準搭載されていないため、指定期間の全日付を一覧表示したい場合はひと工夫必要です。本記事ではビュー(VIEW)を複数組み合わせて、指定した日付範囲の連続した日付を動的に生成する方法を解説します。 全体の仕組み この手法は次の3つのステップで構成されます。 0〜9の数字を返すビュー「digits」を作成する digitsを掛け合わせて0〜9999の連続数値を持つビュー「numbers」を作成する 数値を日付演算に変換して日付リストを返すビュー「dates1」を作成する ステップ1:0〜9の数字を持つ「digit