SQL 日期函数

SQL 日期函数

在本教程中,我们将学习一些内建在SQL中的重要日期函数。

SQL中的日期函数:

  1. NOW()
  2. CURDATE()
  3. CURTIME()
  4. DATE()
  5. EXTRACT()
  6. DATE_ADD()
  7. DATE_SUB()
  8. DATEDIFF()
  9. DATE_FORMAT()

让我们逐个详细了解每个日期函数,并通过示例来了解。我们将在示例中使用MySQL数据库来编写查询。

假设我们有以下数据的学生表:

ID Name DateTime_Birth City
1 Mansi Shah 2010-01-01 18:39:09 Pune
2 Tejal Wagh 2010-03-04 05:13:19 Nasik
3 Sejal Kumari 2010-05-01 10:31:07 Mumbai
4 Sonal Jain 2010-09-09 17:17:07 Shimla
5 Surili Maheshwari 2010-07-10 20:45:18 Surat

我们将在一些示例中使用这个表。

1. NOW()

SQL中的NOW()函数将提供当前系统的日期和时间。

语法:

SELECT NOW ();

例子:

编写一个查询以显示当前系统的日期和时间。

查询:

mysql> SELECT NOW () AS Current_Date_Time; 

这里,我们使用NOW()函数编写了一个SELECT查询来获取系统的当前日期和时间。Current_Date_Time是用来存储日期和时间的别名。

在执行上述查询后,我们得到了以下输出结果:

Current_Date_Time   
---  
2021-10-24 18:28:44   

查询在系统中执行的日期和时间是2021年10月24日18:28:44。因此,它作为输出显示。

2. CURDATE()

SQL中的CURDATE()函数将给出当前系统的日期。

语法:

SELECT CURDATE ();

示例:

编写一个查询来显示当前系统的日期。

查询:

mysql> SELECT CURDATE () AS CurrentDate;

在这里,我们使用CURDATE()函数编写了一个SELECT查询,以获取系统的当前日期。CurrentDate是一个别名,用于存储日期。

在执行上述查询之后,我们得到了以下输出:

CurrentDate   
---  
2021-10-24   

系统中执行查询的日期是2021年10月24日。因此,它作为输出显示。

3. CURTIME()

CURTIME()函数在SQL中将给出当前系统时间。

语法:

SELECT CURTIME ();

示例:

编写一个查询来显示当前系统时间。

查询:

mysql> SELECT CURTIME () AS CurrentTime;

在这里,我们使用CURTIME()函数编写了一个SELECT查询来获取系统的当前时间。CurrentTime是一个用来存储时间的别名。

执行上述查询后,我们得到了以下输出:

CurrentTime   
---  
18:49:07   

系统执行查询的时间是18:49:07。因此,它以输出形式显示。

4. DATE()

在SQL中使用DATE()函数,您可以从DATETIME数据类型列中明确提取日期。

语法:

SELECT DATE (DateTimeValue);

示例1:

编写一个查询以显示给定日期和时间的日期,即2021-10-24 18:28:44。

查询:

mysql> SELECT DATE ("2021-10-24 18:28:44") AS SHOW_DATE;

在这里,我们使用DATE()函数编写了一个SELECT查询,以从传递给DATE()函数的日期和时间参数中获取仅日期部分。SHOW_DATE是一个用于存储日期的别名。

在执行上述查询后,我们得到了以下输出结果:

SHOW_DATE   
---  
2021-10-24   

从日期和时间参数即’2021-10-24 18:28:44’中,日期值为2021-10-24。因此,它显示为输出。

示例2:

编写一个查询来显示从学生表中的DateTime_Birth列获取的日期的所有详细信息。

查询:

mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;

在这里,我们编写了一个SELECT查询来获取ID和Name。 Date_of_Birth是DateTime_Birth的别名。我们使用了DATE()函数将Date_of_Birth与只获取日期的功能一起使用。

执行上述查询后,我们得到了以下输出:

ID Name Date_of_Birth City
1 Mansi Shah 2010-01-01 Pune
2 Tejal Wagh 2010-03-04 Nasik
3 Sejal Kumari 2010-05-01 Mumbai
4 Sonal Jain 2010-09-09 Shimla
5 Surili Maheshwari 2010-07-10 Surat

所有的记录都是从学生表中原样显示的,除了DateTime_Birth列。根据要求,只有日期显示在Date_of_Birth列中。

5. EXTRACT()

使用SQL中的EXTRACT()函数,我们可以根据要求提取日期和时间的特定部分:天、月、年、小时、分钟等等。

语法:

SELECT EXTRACT (PART FROM DATE / TIME);

示例1:

编写一个查询以显示给定日期的年份,即2021年10月24日。

查询:

mysql> SELECT EXTRACT (YEAR FROM "2021-10-24") AS SHOW_YEAR;

在这里,我们编写了一个带有EXTRACT()函数的SELECT查询来从给定日期中获取年份。SHOW_YEAR是一个别名,用于存储年份。

执行上述查询后,我们得到了以下输出:

SHOW_YEAR   
---  
2021   

‘2021’是给定日期的年份。因此,它作为输出显示。

示例2:

编写一个查询来显示给定日期中的月份,即24 th 十月2021年。

查询:

mysql> SELECT EXTRACT (MONTH FROM "2021-10-24") AS SHOW_MONTH;

在这里,我们使用EXTRACT()函数编写了一个SELECT查询,用于从给定的日期中获取月份。SHOW_MONTH是一个别名,用于存储月份。

执行以上查询之后,我们得到了如下输出:

SHOW_MONTH   
---  
10   

10th是给定日期中的月份值。因此,它作为输出显示。

示例3:

写一个查询,显示给定日期中的日子,即2021年10月24th。

查询:

mysql> SELECT EXTRACT (DAY FROM "2021-10-24") AS SHOW_DAY;

在这里,我们使用EXTRACT()函数编写了一个SELECT查询,以从给定日期中获取日期。SHOW_DAY是一个别名,用于存储日期。

执行上述查询后,我们得到以下输出:

SHOW_DAY   
---  
24   

24 日 是给定日期的日期值。因此,它作为输出显示。

示例4:

编写查询以显示给定时间的小时,即19:10:43。

查询:

mysql> SELECT EXTRACT (HOUR FROM "19:10:43") AS SHOW_HOUR;

在这里,我们使用EXTRACT()函数编写了一个SELECT查询,以获取给定时间的小时。SHOW_HOUR是一个别名,用于存储小时值。

执行上述查询后,我们得到以下输出:

SHOW_HOUR   
---  
19   

’19’是给定时间的小时值。因此,它作为输出显示。

示例5:

编写查询以显示给定时间中的分钟,即19:10:43。

查询:

mysql> SELECT EXTRACT (MINUTE FROM "19:10:43") AS SHOW_MINUTE;

在这里,我们使用EXTRACT()函数编写了一个SELECT查询,以从给定的时间中获取分钟值。SHOW_MINUTE是一个别名,用于存储分钟值。

执行上述查询后,我们得到了以下输出:

SHOW_MINUTE   
---  
10   

’10’是给定时间中的分钟值。因此,它作为输出显示。

示例6:

编写查询以显示给定时间(即19:10:43)中的秒。

查询:

mysql> SELECT EXTRACT (SECOND FROM "19:10:43") AS SHOW_SECOND;

在这里,我们使用EXTRACT()函数编写了一个SELECT查询,以获取给定时间的秒值。SHOW_SECOND是一个别名,用于存储一个秒钟的值。

执行上述查询后,我们得到以下输出:

SHOW_SECOND   
---  
43   

43是给定时间的第二个值。因此,它作为输出显示。

6. DATE_ADD()

使用SQL中的DATE_ADD()函数,我们可以将特定的时间间隔添加到给定的日期上。

语法:

SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);

示例1:

编写一个查询,将给定日期(即2021年10月24日)加上15天。

查询:

mysql> SELECT DATE_ADD ("2021-10-24", INTERVAL 15 DAY) AS NEW_DATE;

这里,我们使用DATE_ADD()函数编写了一个SELECT查询,以向给定日期添加一个15天的间隔。NEW_DATE是一个别名,用于存储新日期的值。

您将获得以下输出:

NEW_DATE   
---  
2021-11-08   

将2021-10-24增加15天的间隔后,新的日期是2021-11-08。

示例2:

编写一个查询以在给定日期2021年10月24日上添加5个月的间隔。

查询:

mysql> SELECT DATE_ADD ("2021-10-24", INTERVAL 5 MONTH) AS NEW_DATE;

在这里,我们编写了一个带有DATE_ADD()函数的SELECT查询,以在给定日期上添加5个月的间隔。NEW_DATE是一个别名,用于存储新日期的值。

你将得到以下输出:

NEW_DATE   
---  
2022-03-24   

在2021-10-24上添加5个月的间隔后,新日期为2022-03-24。

示例3:

编写一个查询,将给定日期增加25年,即2021年10月24日。

查询:

mysql> SELECT DATE_ADD ("2021-10-24", INTERVAL 25 YEAR) AS NEW_DATE;

这里,我们使用DATE_ADD()函数编写了一个SELECT查询,以在给定的日期上添加一个25年的间隔。NEW_DATE是一个别名,用于存储新日期的值。

您将获得以下输出:

NEW_DATE   
---  
2046-10-24   

在2021-10-24的基础上增加25年后,新日期为2046-10-24。

7. DATE_SUB()

使用SQL中的DATE_SUB()函数,我们可以从给定日期中减去指定的时间间隔。

语法:

SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);

示例1:

编写一个查询来从给定日期中删除25年的时间间隔,即2021年10月24日。

查询:

mysql> SELECT DATE_SUB("2021-10-24", INTERVAL 25 YEAR) AS NEW_DATE;

在这里,我们使用DATE_SUB()函数编写了一个SELECT查询,从给定日期中减去25年的时间间隔。NEW_DATE是一个别名,用于存储新日期的值。

你将得到以下输出结果:

NEW_DATE   
---  
1996-10-24   

从2021-10-24去掉25年的间隔后,得到的新日期是1996-10-24。

示例2:

编写一个查询语句,从给定日期(即2021年10月24日)中去掉一个5个月的间隔。

查询语句:

mysql> SELECT DATE_SUB("2021-10-24", INTERVAL 5 MONTH) AS NEW_DATE;

这里,我们使用DATE_SUB()函数编写了一个SELECT查询,用于从给定日期中删除5个月的间隔。NEW_DATE是一个别名,用于存储新日期的值。

您将获得以下输出:

NEW_DATE   
---  
2021-05-24   

将2021-10-24日期减去5个月后得到的新日期为2021-05-24。

示例3:

编写一个查询,从给定的日期2021年10月24日减去15天。

查询:

mysql> SELECT DATE_SUB("2021-10-24", INTERVAL 15 DAY) AS NEW_DATE;

在这里,我们使用DATE_SUB()函数编写了一个SELECT查询,以从给定的日期中减去15天的间隔。NEW_DATE是一个别名,用于存储新日期的值。

您将获得以下输出:

NEW_DATE   
---  
2021-10-09   

从2021-10-24中去除15天间隔后,新日期为2021-10-09。

8. DATEDIFF()

在SQL中使用DATEDIFF()函数可以得到两个给定日期之间的天数。

语法:

SELECT DATEDIFF(Date1, Date2);

示例1:

编写一个查询来计算两个给定日期之间的差异,即2021年10月24日和2021年10月9日。

查询:

mysql> SELECT DATEDIFF("2021-10-24", "2021-10-09") AS NEW_DATE;

在这里,我们使用DATE_DIFF()函数编写了一个SELECT查询,以获取日期2021-10-24和2021-10-09之间的差异。Number_of_Days是一个别名,用于存储以天数为单位的差异。

您将获得以下输出:

Number_of_Days   
---  
15   

2021-10-24和2021-10-09之间相差15天。

例2:

编写一个查询来计算两个给定日期之间的差异,即2018年5月5日和2008年5月5日。

查询:

mysql> SELECT DATEDIFF ("2018-05-05", "2008-05-05") AS NEW_DATE;

在这里,我们使用DATE_DIFF()函数编写了一个SELECT查询,以获取日期2018-05-05和2008-05-05之间的差异。Number_of_Days是一个别名,用于以天数的形式存储差异。

您将获得以下输出:

Number_of_Days   
---  
3652   

在日期2018-05-05和2008-05-05之间相差3652天。

9. DATE_FORMAT()

使用SQL中的DATE_FORMAT()函数,我们可以以格式化的方式显示与日期或时间相关的信息。

在表的列上使用DATE_FORMAT函数的语法:

SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;

或者

格式化特定日期的语法:

SELECT DATE_FORMAT (Date, Expression);

示例1:

编写一个查询以以格式良好的方式显示给定的日期,即2021年10月24日th。

查询:

mysql> SELECT DATE_FORMAT ("2021-10-24", "%W %D %M %Y") AS Formatted_Date;

在这里,我们使用DATE_FORMAT()函数编写了一个SELECT查询,以获取格式化形式的日期2021-10-24。 Formatted_Date是一个用于存储格式化日期的别名。

你将会得到以下输出:

Formatted_Date
---  
Sunday 24th October 2021

Sunday 24th October 2021 是格式化日期,格式为2021-10-24。

示例2:

编写一个查询以以格式化方式显示给定的日期和时间,即2021年10月24日 22:30:17。

查询:

mysql> SELECT DATE_FORMAT ("2021-10-24 22:30:17", "%W %D %M %Y %r") AS Formatted_DateTime;

这里,我们使用DATE_FORMAT()函数编写了一个SELECT查询,以得到格式化形式的日期和时间’2021-10-24 22:30:17’。Formatted_DateTime是一个用于存储格式化日期和时间的别名。

您将获得以下输出:

Formatted_DateTime
Sunday 24th October 2021 10:30:17 PM

Sunday 24th October 2021 10:30:17 PM 是 2021-10-24 22:30:17 的格式化日期和时间。

例子 3:

编写一个查询来以良好格式显示学生列中的所有详细信息,并带有 DateTime_Birth 列。

查询:

mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, "%W %D %M %Y %r") AS Formatted_DateTime, City FROM student;

在这里,我们使用DATE_FORMAT()函数编写了一个SELECT查询,以获取所有记录的日期和时间的格式化形式。Formatted_DateTime是一个用于存储格式化日期和时间的别名。

你将得到以下输出:

ID Name Formatted_DateTime City
1 Mansi Shah Friday 1st January 2010 06:39:09 PM Pune
2 Tejal Wagh Thursday 4th March 2010 05:13:19 AM Nasik
3 Sejal Kumari Saturday 1st May 2010 10:31:07 AM Mumbai
4 Sonal Jain Thursday 9th September 2010 05:17:07 PM Shimla
5 Surili Maheshwari Saturday 10th July 2010 08:45:18 PM Surat

这只显示了学生表中的所有记录,除了DateTime_Birth列。 格式化的日期和时间根据要求在Formatted_DateTime列中显示。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程