logo

SQLのTIMEデータ型

  • SQL には、データベースの SQL テーブルに時刻を保存する必要があるシナリオが数多くあります。
  • SQL テーブルに時刻を格納するには、最初のステップとして、時刻を格納できる列をテーブルに作成する必要があります。
  • テーブルの列に時間を格納したい場合は、TIME データ型の列を作成する必要があります。
  • TIME データ型は、デフォルトで時刻を「HH:MM:SS」形式で保存します。
  • SQL で SELECT ステートメントを使用すると、SQL テーブルの列から時刻を取得できます。
  • SQL には、時刻が保存されているデフォルトの形式で時刻を取得することに加えて、より読みやすい形式で時刻を取得できる TIME_FORMAT () 関数があります。
  • テーブルに格納されているデフォルトの形式 (「HH:MM:SS」) で時刻を取得することも、時、分、秒などの時刻の特定の部分を取得するオプションもあります。要件に従って適切なパラメータを選択し、それを TIME_FORMAT() 関数に渡します。時刻は 12 時間形式と 24 時間形式で取得することもできます。
  • AM/PM に続いて時刻を印刷することもできます。

この概念をより明確に理解するために、いくつかの実際的な例を見てみましょう。すべてのクエリの作成には MySQL データベースを使用します。

データベースにテーブルを作成するには、まずテーブルを作成するデータベースを選択します。

 mysql> USE dbs; 

次に、次のクエリを記述してテーブルを作成します。

 mysql> CREATE TABLE items_tbl(ID INT, Item_Name VARCHAR(20), Item_Quantity INT, Item_Price INT, Item_OrderDate DATE, Item_OrderTime TIME); 

SQLのTIMEデータ型

上記のクエリでは、ItemOrderTime という名前の列に、この列のデータ型が「TIME」として設定されている時間が格納されます。

次に、items_tbl テーブルにレコードを挿入するクエリを作成します。

Javaのエスケープ文字
 mysql> INSERT INTO items_tbl(ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, Item_OrderTime) VALUES(1, 'Soap', 5, 200, '2021-07-08', '04:13:52'), (2, 'Toothpaste', 2, 80, '2021-07-10', '18:09:01'), (3, 'Pen', 10, 50, '2021-07-12', '12:00:02'), (4, 'Bottle', 1, 250, '2021-07-13', '15:07:05'), (5, 'Brush', 3, 90, '2021-07-15', '19:18:43'), (6, 'Notebooks', 10, 1000, '2021-07-26', '05:05:05'), (7, 'Handkerchief', 3, 100, '2021-07-28', '10:08:12'), (8, 'Chips Packet', 5, 50, '2021-07-30', '08:16:58'), (9, 'Marker', 2, 30, '2021-08-13', '02:18:32'), (10, 'Scissors', 1, 60, '2021-08-13', '07:17:30'); 

SQLのTIMEデータ型

SELECT クエリを実行して、すべてのレコードが items_tbl テーブルに正常に挿入されたことを確認します。

 mysql> SELECT *FROM items_tbl; 

ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文時間
1 石鹸 5 200 2021-07-08 04:13:52
2 歯磨き粉 2 80 2021-07-10 18:09:01
3 ペン 10 50 2021-07-12 12:00:02
4 ボトル 1 250 2021-07-13 15:07:05
5 みがきます 3 90 2021-07-15 19:18:43
6 ノート 10 1000 2021-07-26 05:05:05
7 ハンカチ 3 100 2021-07-28 10:08:12
8 チップパケット 5 50 2021-07-30 08:16:58
9 マーカー 2 30 2021-08-13 02:18:32
10 ハサミ 1 60 2021-08-13 07:17:30

上記のクエリ結果は、時刻が保存されているデフォルトの形式、つまり「HH:MM:SS」で取得されたことを示しています。

例 1:

item_tbl からすべての値を取得するクエリを作成し、商品の注文時刻を AM/PM とともに 12 時間形式で取得し、時刻の値を読みやすい形式で取得します。

Javaの静的キーワード

クエリ:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%r') AS Formatted_Time FROM items_tbl; 

ここでは、TIME_FORMAT() 関数がパラメーター '%r' を使用して Items_OrderTime に適用され、時刻が 12 時間形式で表示され、その後に AM/PM が続きます。

出力として次のテーブルが得られます。

ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文時間
1 石鹸 5 200 2021-07-08 午前04時13分52秒
2 歯磨き粉 2 80 2021-07-10 午後6時09分01秒
3 ペン 10 50 2021-07-12 午後12時00分02秒
4 ボトル 1 250 2021-07-13 午後 03:07:05
5 みがきます 3 90 2021-07-15 午後7時18分43秒
6 ノート 10 1000 2021-07-26 午前05:05:05
7 ハンカチ 3 100 2021-07-28 午前10時08分12秒
8 チップパケット 5 50 2021-07-30 午前8時16分58秒
9 マーカー 2 30 2021-08-13 午前02時18分32秒
10 ハサミ 1 60 2021-08-13 午前7時17分30秒

例 2:

item_tbl からすべての値を取得するクエリを作成し、商品の注文時刻を AM/PM とともに 12 時間形式で取得し、時刻の値を読みやすい形式で取得します。

クエリ:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%T %p') AS Formatted_Time FROM items_tbl; 

ここでは、TIME_FORMAT () 関数がパラメーター '%T %p' を使用して Items_OrderTime に適用されます。 '%T' は時刻を 24 時間形式で出力し、'%p' は 24 時間形式の時刻に AM/PM を追加します。

出力として次のテーブルが得られます。

Java文字列のトリム
ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文時間
1 石鹸 5 200 2021-07-08 午前04時13分52秒
2 歯磨き粉 2 80 2021-07-10 午後18時09分01秒
3 ペン 10 50 2021-07-12 午後12時00分02秒
4 ボトル 1 250 2021-07-13 午後15時07分05秒
5 みがきます 3 90 2021-07-15 午後19時18分43秒
6 ノート 10 1000 2021-07-26 午前05:05:05
7 ハンカチ 3 100 2021-07-28 午前10時08分12秒
8 チップパケット 5 50 2021-07-30 午前8時16分58秒
9 マーカー 2 30 2021-08-13 午前02時18分32秒
10 ハサミ 1 60 2021-08-13 午前7時17分30秒

例 3:

item_tbl からすべての値を取得し、24 時間形式の注文時間全体から品目の注文時間のみを取得するクエリを作成します。

クエリ:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl; 

ここでは、TIME_FORMAT () 関数がパラメーター '%H' を使用して Item_OrderTime に適用され、商品が注文された時間を具体的に出力します。大文字の H は、時間が 24 時間形式で印刷されることを示します。

出力として次のテーブルが得られます。

ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文時間
1 石鹸 5 200 2021-07-08 04
2 歯磨き粉 2 80 2021-07-10 18
3 ペン 10 50 2021-07-12 12
4 ボトル 1 250 2021-07-13 15
5 みがきます 3 90 2021-07-15 19
6 ノート 10 1000 2021-07-26 05
7 ハンカチ 3 100 2021-07-28 10
8 チップパケット 5 50 2021-07-30 08
9 マーカー 2 30 2021-08-13 02
10 ハサミ 1 60 2021-08-13 07

例 4:

item_tbl からすべての値を取得し、12 時間形式の全注文時間から品目の注文時間のみを取得するクエリを作成します。

クエリ:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%h') AS Item_OrderHour FROM items_tbl; 

ここでは、TIME_FORMAT () 関数がパラメーター '%h' を使用して Item_OrderTime に適用され、商品が注文された時間を具体的に出力します。小さな「h」は、時間が 12 時間形式で印刷されることを示します。

出力として次のテーブルが得られます。

文字列をブール値の Java に変換
ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文時間
1 石鹸 5 200 2021-07-08 04
2 歯磨き粉 2 80 2021-07-10 6
3 ペン 10 50 2021-07-12 12
4 ボトル 1 250 2021-07-13 03
5 みがきます 3 90 2021-07-15 07
6 ノート 10 1000 2021-07-26 05
7 ハンカチ 3 100 2021-07-28 10
8 チップパケット 5 50 2021-07-30 08
9 マーカー 2 30 2021-08-13 02
10 ハサミ 1 60 2021-08-13 07

例 5:

item_tbl からすべての値を取得し、全注文時間から商品が注文された分のみを取得するクエリを作成します。

クエリ:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%i') AS Item_OrderMinute FROM items_tbl; 

ここでは、TIME_FORMAT () 関数がパラメーター '%i' を使用して Item_OrderTime に適用され、商品が注文された時刻を具体的に出力します。小さな「i」は、「Item_OrderTime」全体の分が印刷されることを示します。

出力として次のテーブルが得られます。

np.ヒストグラム
ID 項目名 品目_数量 商品_価格 品目_注文日 品目_注文分
1 石鹸 5 200 2021-07-08 13
2 歯磨き粉 2 80 2021-07-10 09
3 ペン 10 50 2021-07-12 00
4 ボトル 1 250 2021-07-13 07
5 みがきます 3 90 2021-07-15 18
6 ノート 10 1000 2021-07-26 05
7 ハンカチ 3 100 2021-07-28 08
8 チップパケット 5 50 2021-07-30 16
9 マーカー 2 30 2021-08-13 18
10 ハサミ 1 60 2021-08-13 17

例 6:

item_tbl からすべての値を取得し、全注文時間から商品が注文された秒数のみを取得するクエリを作成します。

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl; 

ここでは、TIME_FORMAT () 関数がパラメーター '%S' を使用して Item_OrderTime に適用され、特に商品が注文された秒数を出力します。大文字の「S」は、「Item_OrderTime」全体の分が印刷されることを示します。

出力として次のテーブルが得られます。

ID 項目名 品目_数量 商品_価格 品目_注文日 アイテム_注文_秒
1 石鹸 5 200 2021-07-08 52
2 歯磨き粉 2 80 2021-07-10 01
3 ペン 10 50 2021-07-12 02
4 ボトル 1 250 2021-07-13 05
5 みがきます 3 90 2021-07-15 43
6 ノート 10 1000 2021-07-26 05
7 ハンカチ 3 100 2021-07-28 12
8 チップパケット 5 50 2021-07-30 58
9 マーカー 2 30 2021-08-13 32
10 ハサミ 1 60 2021-08-13 二十

注: 上記のクエリで Small 's' を使用しても、同じ出力が得られます。