SQL 从日期中获取月份
- 为了记住重要的日期,我们可以将它们存储在SQL数据库表中。
- 有时候我们只想从SQL表的列中检索日期的月份,而不是整个日期。
- SQL中有不同的日期函数,可以根据我们的需求从列中获取日期的不同部分。
- SQL中的 MONTH() 函数用于从表的列中获取整个日期的月份。
- 除了以默认格式检索日期之外,SQL还有一个DATE_FORMAT()函数,可以以更易读的格式检索日期值。
让我们看一些实际示例来更清楚地理解这个概念。我们将使用MySQL数据库来编写所有查询。
mysql> USE dbs;
接下来,我们将编写以下查询语句在’dbs’数据库中创建一个表:
mysql> CREATE TABLE student(ID INT PRIMARY KEY, Name VARCHAR(20), Percentage INT, Location VARCHAR(20), DateOfBirth DATE);
在上述查询中,列名为’DateOfBirth’的列将存储日期,因为该列的数据类型设置为’DATE’。
现在,我们将编写一个查询来在学生表中插入记录。
mysql> INSERT INTO student(ID, Name, Percentage, Location, DateOfBirth) VALUES (1, "Manthan Koli", 79, "Delhi", "2003-08-20"), (2, "Dev Dixit", 75, "Pune", "1999-06-17"), (3, "Aakash Deshmukh", 87, "Mumbai", "1997-09-12"), (4, "Aaryan Jaiswal", 90, "Chennai", "2005-10-02"), (5, "Rahul Khanna", 92, "Ambala", "1996-03-04");
我们将执行SELECT查询,以验证所有记录是否成功插入到学生表中。
mysql> SELECT *FROM student;
您将会得到以下表格作为输出:
ID | Name | Percentage | sLocation | DateOfBirth |
---|---|---|---|---|
1 | Manthan Koli | 79 | Delhi | 2003-08-20 |
2 | Dev Dixit | 75 | Pune | 1999-06-17 |
3 | Aakash Deshmukh | 87 | Mumbai | 1997-09-12 |
4 | Aaryan Jaiswal | 90 | Chennai | 2005-10-02 |
5 | Rahul Khanna | 92 | Ambala | 1996-03-04 |
上述查询结果显示存储在“DateOfBirth”列中的日期以默认格式检索,即“YYYY-MM-DD”。
例子 1:
编写一个查询来仅检索日期中的特定部分,即从“DateOfBirth”列中的月份。
查询:
mysql> SELECT ID, Name, Percentage, Location, MONTH (DateOfBirth) AS MonthOfBirth FROM student;
Month()函数在SELECT查询中使用,并应用于DateOfBirth列,以仅检索整个日期中的月份。使用AS关键字给出的别名’MonthOfBirth’用于存储日期中的月份。
您将获得以下表格作为输出:
ID | Name | Percentage | Location | MonthOfBirth |
---|---|---|---|---|
1 | Manthan Koli | 79 | Delhi | 8 |
2 | Dev Dixit | 75 | Pune | 6 |
3 | Aakash Deshmukh | 87 | Mumbai | 9 |
4 | Aaryan Jaiswal | 90 | Chennai | 10 |
5 | Rahul Khanna | 92 | Ambala | 3 |
结果显示所有学生的出生月份已成功提取至“MonthOfBirth”列。
示例2:
编写一个查询语句,从“DateOfBirth”列中以更易读的格式只检索日期的特定部分,即月份。
查询:
mysql> SELECT ID, Name, Percentage, Location, DATE_FORMAT (DateTimeOfBirth, '%M') AS MonthOfBirth FROM student;
你将会得到如下表格作为输出:
ID | Name | Percentage | Location | MonthOfBirth |
---|---|---|---|---|
1 | Manthan Koli | 79 | Delhi | August |
2 | Dev Dixit | 75 | Pune | June |
3 | Aakash Deshmukh | 87 | Mumbai | September |
4 | Aaryan Jaiswal | 90 | Chennai | October |
5 | Rahul Khanna | 92 | Ambala | March |
DATE_FORMAT ()函数用于SELECT查询,并应用于日期列DateOfBirth,以从整个日期中以更可读的格式检索仅月份。’MonthOfBirth’是使用AS关键字给定的别名,用于存储日期中的月份。