いままでなんで、きずかなかったのだろう。。
例えば、こんなテーブルがあったとして
DROP TABLE IF EXISTS test_tab1 ;
CREATE TABLE `test_tab1` (
`Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Numeric_only_date_time` varchar(8) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
;
idはオートインクリメント値
numeric_only_date_timeは、現在の日付を、数字のみに表したもの(20180511みたいな)
という形式でデータを格納したい場合、みなさまはどうしますか?
自分でしたら
INSERT INTO test_tab1
(numeric_only_date_time) VALUES (DATE_FORMAT(CURRENT_TIMESTAMP,'%Y%m%d')) ;
で、まずINSERTすると思います。
結果は以下のような感じになります
SELECT * FROM test_tab1 ;
+
| Id | CreatedAt | Numeric_only_date_time |
+
| 1 | 2018-05-11 12:50:16 | 20180511 |
+
今回シンプルなデータなので、あまりメリットは感じないかもしれませんが、仮に、numeric_only_date_timeのデフォルト(現在日付)にしたい場合で、もっとシンプルにINSERT文を発行したい時はどうしましょう?実はそれが簡単にできてしまうのです!!
続きを読む