MySQLで今年の1月1日をエポック(UNIXタイムスタンプ)に変換する方法
今年の1月1日をエポック(UNIXタイムスタンプ)に変換するには?
MySQLでは、UNIX_TIMESTAMP()関数とCONCAT()関数、YEAR()関数を組み合わせることで、現在の年の1月1日をエポック秒(UNIXタイムスタンプ)へ簡単に変換できます。
基本的なクエリ
CURDATE()で取得した現在の日付からYEAR()関数で年を抽出し、「-01-01」と連結した文字列をUNIX_TIMESTAMP()に渡すのがポイントです。実際のクエリは以下の通りです。
mysql> Select UNIX_TIMESTAMP(CONCAT(YEAR(CURDATE()),'-01-01')); +--------------------------------------------------+ | UNIX_TIMESTAMP(CONCAT(YEAR(CURDATE()),'-01-01')) | +--------------------------------------------------+ | 1483209000 | +--------------------------------------------------+ 1 row in set (0.03 sec)
この例では実行時の年が2017年だったため、「2017-01-01 00:00:00」に対応するエポック値「1483209000」が返されています。同じクエリを実行する年によって、結果は自動的に変わります。
結果の検証方法
取得したエポック値が正しいかどうかは、逆変換を行うFROM_UNIXTIME()関数を使えば簡単に確認できます。
mysql> Select FROM_UNIXTIME(1483209000); +---------------------------+ | FROM_UNIXTIME(1483209000) | +---------------------------+ | 2017-01-01 00:00:00 | +---------------------------+ 1 row in set (0.02 sec)
このように「2017-01-01 00:00:00」と表示されれば、正しく変換できていることがわかります。
仕組みの解説
- YEAR(CURDATE()):現在の日付から年(例:2017)だけを取り出します。
- CONCAT(YEAR(CURDATE()), '-01-01'):取り出した年と「-01-01」を連結し、「2017-01-01」という日付文字列を生成します。
- UNIX_TIMESTAMP():生成した日付文字列を、1970年1月1日00:00:00からの経過秒数であるエポック値に変換します。
なお、返されるエポック値はサーバーのタイムゾーン設定の影響を受けるため、環境によって数値が異なる場合がある点に注意してください。
-
JavaScriptで現在の年(西暦)を取得する方法|getFullYear()メソッドの使い方
JavaScriptで現在の年を取得したい場合は、getFullYear()メソッドを使用します。getFullYear()は、Dateオブジェクトが持つ日付情報から、ローカルタイム(ローカル時刻)に基づいた「年」を返すメソッドです。戻り値は絶対数として表現され、たとえば1000年〜9999年の範囲の日付であれば、4桁の数字(例:2008)が返されます。getFullYear()メソッドの基本構文dateObj.getFullYear()引数は不要で、呼び出したDateオブジェクトの年だけを数値として取得できるシンプルなメソッドです。サンプルコード以下のコードを実行すると、指定した日付から年を
-
【サンプルコード付き】Androidで現在の画面の向き(縦・横)を取得する方法
はじめに:画面の向きを取得するシーンとは Androidアプリ開発では、アクティビティが現在縦向き(ポートレート)なのか横向き(ランドスケープ)なのかを、プログラム側から判定したい場面があります。例えば、端末の向きに応じてレイアウトやUIを切り替えたいときなどです。本記事では、getResources().getConfiguration().orientationを使って現在の画面の向きを取得し、その結果に応じてTextViewの表示を切り替えるサンプルを、手順に沿ってわかりやすく解説します。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューからFile