SQL TIME数据类型

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表中插入记录。

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 Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderTime
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

上述查询结果显示,时间以存储的默认格式检索,即’HH:MM:SS’。

示例1:

编写一个查询来检索item_tbl中的所有值和物品的订单时间,以12小时格式显示,并附带上午/下午来以更可读的格式检索时间值。

查询:

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

在这里,TIME_FORMAT()函数应用于Item_OrderTime,并以参数’%r’打印出12小时制的时间,后跟AM/PM。

您将得到以下表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderTime
1 Soap 5 200 2021-07-08 04:13:52 AM
2 Toothpaste 2 80 2021-07-10 06:09:01 PM
3 Pen 10 50 2021-07-12 12:00:02 PM
4 Bottle 1 250 2021-07-13 03:07:05 PM
5 Brush 3 90 2021-07-15 07:18:43 PM
6 Notebooks 10 1000 2021-07-26 05:05:05 AM
7 Handkerchief 3 100 2021-07-28 10:08:12 AM
8 Chips Packet 5 50 2021-07-30 08:16:58 AM
9 Marker 2 30 2021-08-13 02:18:32 AM
10 Scissors 1 60 2021-08-13 07:17:30 AM

示例2:

编写一个查询以检索item_tbl中的所有值以及项目的订单时间,将时间值以12小时制的格式和AM/PM一起检索,以便以更易读的格式检索时间值。

查询:

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()函数应用于Item_OrderTime,并且参数为’%T %p’。’%T’将以24小时制打印时间,’%p’将在24小时制格式化的时间后添加上午/下午。

你将得到以下表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderTime
1 Soap 5 200 2021-07-08 04:13:52 AM
2 Toothpaste 2 80 2021-07-10 18:09:01 PM
3 Pen 10 50 2021-07-12 12:00:02 PM
4 Bottle 1 250 2021-07-13 15:07:05 PM
5 Brush 3 90 2021-07-15 19:18:43 PM
6 Notebooks 10 1000 2021-07-26 05:05:05 AM
7 Handkerchief 3 100 2021-07-28 10:08:12 AM
8 Chips Packet 5 50 2021-07-30 08:16:58 AM
9 Marker 2 30 2021-08-13 02:18:32 AM
10 Scissors 1 60 2021-08-13 07:17:30 AM

示例 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()函数应用于Item_OrderTime,并且使用参数’%H’来专门打印订单的小时。大写的H表示小时将以24小时制打印。

您将得到以下表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderHour
1 Soap 5 200 2021-07-08 04
2 Toothpaste 2 80 2021-07-10 18
3 Pen 10 50 2021-07-12 12
4 Bottle 1 250 2021-07-13 15
5 Brush 3 90 2021-07-15 19
6 Notebooks 10 1000 2021-07-26 05
7 Handkerchief 3 100 2021-07-28 10
8 Chips Packet 5 50 2021-07-30 08
9 Marker 2 30 2021-08-13 02
10 Scissors 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()函数被应用在Item_OrderTime上,使用参数’%h’来打印订单时间的小时。小写的 ‘h’ 表示小时将以12小时制打印。

你将得到以下表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderHour
1 Soap 5 200 2021-07-08 04
2 Toothpaste 2 80 2021-07-10 6
3 Pen 10 50 2021-07-12 12
4 Bottle 1 250 2021-07-13 03
5 Brush 3 90 2021-07-15 07
6 Notebooks 10 1000 2021-07-26 05
7 Handkerchief 3 100 2021-07-28 10
8 Chips Packet 5 50 2021-07-30 08
9 Marker 2 30 2021-08-13 02
10 Scissors 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()函数应用于Item_OrderTime,使用参数’%i’来特定打印订单的分钟。小写的’i’表示将打印出整个’Item_OrderTime’中的分钟部分。

你将获得以下表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_OrderMinute
1 Soap 5 200 2021-07-08 13
2 Toothpaste 2 80 2021-07-10 09
3 Pen 10 50 2021-07-12 00
4 Bottle 1 250 2021-07-13 07
5 Brush 3 90 2021-07-15 18
6 Notebooks 10 1000 2021-07-26 05
7 Handkerchief 3 100 2021-07-28 08
8 Chips Packet 5 50 2021-07-30 16
9 Marker 2 30 2021-08-13 18
10 Scissors 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()函数应用于Item_OrderTime,参数为’%S’,用于特定打印出订单的秒数。大写的’S’表示将打印出整个’Item_OrderTime’的分钟。

你将得到如下的表格作为输出:

ID Item_Name Item_Quantity Item_Price Item_OrderDate Item_Order_Seconds
1 Soap 5 200 2021-07-08 52
2 Toothpaste 2 80 2021-07-10 01
3 Pen 10 50 2021-07-12 02
4 Bottle 1 250 2021-07-13 05
5 Brush 3 90 2021-07-15 43
6 Notebooks 10 1000 2021-07-26 05
7 Handkerchief 3 100 2021-07-28 12
8 Chips Packet 5 50 2021-07-30 58
9 Marker 2 30 2021-08-13 32
10 Scissors 1 60 2021-08-13 20

注意:在上面的查询中使用小写字母’s’将产生相同的输出。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程