SQL 日期函数
1. 前言
慕课解释:SQL 内置的日期函数主要用于对
日期和时间类型的字段进行相关的操作。
本小节,我们将一起学习SQL 函数中的日期函数。
日期和时间类型是两个比较繁琐的数据类型,它们无法和数值类型一样易于操作和判断,因此 SQL 提供了一系列的日期函数供开发者使用。
本小节测试数据如下,请先在数据库中执行:
DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  id int PRIMARY KEY,
  username varchar(20),
  age int,
  create_time timestamp
);
INSERT INTO imooc_user(id,username,age,create_time)
VALUES (1,'peter',18, '2020-01-29 19:33:55'),(2,'pedro',24,'2020-01-27 11:33:55'),
(3,'jerry',22,'2020-01-29 01:33:50');
2. 实践
在 SQL 中,常见的日期函数有如下几个:
| 函数名 | 作用 | 
|---|---|
| CURRENT_DATE | 得到当前日期 | 
| CURRENT_TIME | 得到当前时间 | 
| CURRENT_TIMESTAMP | 得到当前时间戳 | 
| EXTRACT | 将英文字符串全部转为小写 | 
| DATE | 提取时间戳的日期部分 | 
| YEAR | 提取时间戳的年份部分 | 
| MONTH | 提取时间戳的月份部分 | 
| DAY | 提取时间戳的天数部分 | 
| HOUR | 提取时间戳的小时部分 | 
| MINUTE | 提取时间戳的分钟部分 | 
| SECOND | 提取时间戳的秒部分 | 
提示: PostgreSQL 不支持 CURRENT_XXX 这些函数,获取当前时间戳可以使用函数
NOW。
2.1 例1 获取当前时间、日期
SQL 提供了方便的函数来帮助我们获得当前的日期和时间,且其值与当前系统和时区均有关系。
我们先获取当前日期:
SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2020-01-29     |
+----------------+
然后获取当前时间:
SELECT CURRENT_TIME();
+----------------+
| CURRENT_TIME() |
+----------------+
| 19:42:18       |
+----------------+
当然,我们也可以通过时间戳来一起获取日期和时间:
SELECT CURRENT_TIMESTAMP();
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2020-01-29 19:43:01 |
+---------------------+
2.2 例2 抽取用户新建时间 1
通过EXTRACT函数我们可以快速抽取 imooc_user 表中create_time字段的某些具体值,如获得用户是那一年被创建的:
SELECT EXTRACT(YEAR FROM create_time) FROM imooc_user;
+--------------------------------+
| EXTRACT(YEAR FROM create_time) |
+--------------------------------+
| 2020                           |
| 2020                           |
| 2020                           |
+--------------------------------+
我们也可以抽取具体创建的哪一秒:
SELECT EXTRACT(SECOND FROM create_time) FROM imooc_user;
+----------------------------------+
| EXTRACT(SECOND FROM create_time) |
+----------------------------------+
| 55                               |
| 55                               |
| 50                               |
+----------------------------------+
2.3 例3 抽取用户新建时间 2
我们还可以通过DATE、YEAR等具体函数来抽取创建时间,比如用户新建的日期:
SELECT DATE(create_time) FROM imooc_user;
+-------------------+
| DATE(create_time) |
+-------------------+
| 2020-01-29        |
| 2020-01-27        |
| 2020-01-29        |
+-------------------+
还可以抽取小时部分:
SELECT HOUR(create_time) FROM imooc_user;
+-------------------+
| HOUR(create_time) |
+-------------------+
| 19                |
| 11                |
| 1                 |
+-------------------+
3. 小结
- CURRENT_TIMESTAMP 函数是非常重要的,很多关于日期类型的插入都是通过它来完成的。
 - 日期抽取函数多数用来统计具体的年份和月份的数据。如
YEAR(create_time)=2020。 
          本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
