真偽値、日時の扱い方

DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
  message VARCHAR(140), 
  likes INT,
  is_draft BOOL,
  created DATETIME
);

INSERT INTO posts (message, likes, is_draft, created) VALUES 
  ('Tnanks', 12, TRUE,NOW()),
  ('Arigato', 4, FALSE,'2021-01-10'),
  ('Merci', 4, 0, '2021-01-09 15:32:11');

SELECT * FROM posts;

真偽値は、TRUE(1),FALSE(0)で表現できる。数字を直接入力も可能。

日時については、'2021-01-09 15:32:11'のようにすべてを登録も可能だが、時間を省略すると'00:00:00'が表示される。また、現時間を入れたい場合は、’NOW()’を入力する。それで、上記のように入力すると以下の結果が導き出される。

~ $ mysql -h db -t -u dbuser -pdbpass myapp < main.sql
+---------+-------+----------+---------------------+
| message | likes | is_draft | created             |
+---------+-------+----------+---------------------+
| Tnanks  |    12 |        1 | 2021-01-15 09:37:24 |
| Arigato |     4 |        0 | 2021-01-10 00:00:00 |
| Merci   |     4 |        0 | 2021-01-09 15:32:11 |
+---------+-------+----------+---------------------+