第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

SQL 日期函數(shù)

1. 前言

慕課解釋:SQL 內(nèi)置的日期函數(shù)主要用于對(duì)日期和時(shí)間類型的字段進(jìn)行相關(guān)的操作。

本小節(jié),我們將一起學(xué)習(xí)SQL 函數(shù)中的日期函數(shù)。

日期和時(shí)間類型是兩個(gè)比較繁瑣的數(shù)據(jù)類型,它們無(wú)法和數(shù)值類型一樣易于操作和判斷,因此 SQL 提供了一系列的日期函數(shù)供開(kāi)發(fā)者使用。

本小節(jié)測(cè)試數(shù)據(jù)如下,請(qǐng)先在數(shù)據(jù)庫(kù)中執(zhí)行:

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. 實(shí)踐

在 SQL 中,常見(jiàn)的日期函數(shù)有如下幾個(gè):

函數(shù)名 作用
CURRENT_DATE 得到當(dāng)前日期
CURRENT_TIME 得到當(dāng)前時(shí)間
CURRENT_TIMESTAMP 得到當(dāng)前時(shí)間戳
EXTRACT 將英文字符串全部轉(zhuǎn)為小寫(xiě)
DATE 提取時(shí)間戳的日期部分
YEAR 提取時(shí)間戳的年份部分
MONTH 提取時(shí)間戳的月份部分
DAY 提取時(shí)間戳的天數(shù)部分
HOUR 提取時(shí)間戳的小時(shí)部分
MINUTE 提取時(shí)間戳的分鐘部分
SECOND 提取時(shí)間戳的秒部分

提示: PostgreSQL 不支持 CURRENT_XXX 這些函數(shù),獲取當(dāng)前時(shí)間戳可以使用函數(shù) NOW。

2.1 例1 獲取當(dāng)前時(shí)間、日期

SQL 提供了方便的函數(shù)來(lái)幫助我們獲得當(dāng)前的日期和時(shí)間,且其值與當(dāng)前系統(tǒng)和時(shí)區(qū)均有關(guān)系。

我們先獲取當(dāng)前日期:

SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2020-01-29     |
+----------------+

然后獲取當(dāng)前時(shí)間:

SELECT CURRENT_TIME();
+----------------+
| CURRENT_TIME() |
+----------------+
| 19:42:18       |
+----------------+

當(dāng)然,我們也可以通過(guò)時(shí)間戳來(lái)一起獲取日期和時(shí)間:

SELECT CURRENT_TIMESTAMP();
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2020-01-29 19:43:01 |
+---------------------+

2.2 例2 抽取用戶新建時(shí)間 1

通過(guò)EXTRACT函數(shù)我們可以快速抽取 imooc_user 表中create_time字段的某些具體值,如獲得用戶是那一年被創(chuàng)建的:

SELECT EXTRACT(YEAR FROM create_time) FROM imooc_user;
+--------------------------------+
| EXTRACT(YEAR FROM create_time) |
+--------------------------------+
| 2020                           |
| 2020                           |
| 2020                           |
+--------------------------------+

我們也可以抽取具體創(chuàng)建的哪一秒:

SELECT EXTRACT(SECOND FROM create_time) FROM imooc_user;
+----------------------------------+
| EXTRACT(SECOND FROM create_time) |
+----------------------------------+
| 55                               |
| 55                               |
| 50                               |
+----------------------------------+

2.3 例3 抽取用戶新建時(shí)間 2

我們還可以通過(guò)DATE、YEAR等具體函數(shù)來(lái)抽取創(chuàng)建時(shí)間,比如用戶新建的日期:

SELECT DATE(create_time) FROM imooc_user;
+-------------------+
| DATE(create_time) |
+-------------------+
| 2020-01-29        |
| 2020-01-27        |
| 2020-01-29        |
+-------------------+

還可以抽取小時(shí)部分:

SELECT HOUR(create_time) FROM imooc_user;
+-------------------+
| HOUR(create_time) |
+-------------------+
| 19                |
| 11                |
| 1                 |
+-------------------+

3. 小結(jié)

  • CURRENT_TIMESTAMP 函數(shù)是非常重要的,很多關(guān)于日期類型的插入都是通過(guò)它來(lái)完成的。
  • 日期抽取函數(shù)多數(shù)用來(lái)統(tǒng)計(jì)具體的年份和月份的數(shù)據(jù)。如YEAR(create_time)=2020。