3.1 處理日期和時間的函數列表
日期和時間是數據庫中存儲的最常見的數據類型之一。這就是為什麼使用它們的函數列表非常大。以下是最受歡迎的:
# | 功能 | 描述 |
---|---|---|
1個 | CURDATE() | 返回當前日期 |
2個 | 時間() | 返回當前時間 |
3個 | 現在(),當地時間() | 返回當前日期和當前時間 |
4個 | 年() | 從日期返回年份 |
5個 | 月() | 返回日期中的月份 |
6個 | 日(),日月() | 返回日期中的日期 |
7 | 小時() | 僅從時間返回數小時 |
8個 | 分鐘() | 宣佈時間分鐘 |
9 | 第二() | 從時間返回秒數 |
10 | 日名() | 返回星期幾的名稱:星期一,... |
十一 | 月名() | 返回月份名稱:January, ... |
12 | 星期() | 從日期返回週 |
13 | 工作日() | 返回星期幾的數字:星期一 - 0,星期二 - 1 |
14 | 年周() | 返回一年中的第幾週 |
15 | 星期幾() | 返回星期幾的數字:週日 - 1,週一 - 2 |
16 | 年年日() | 返回一年中的第幾天:1-366 |
17 | 日期() | 僅返回“datetime”對象的日期 |
18 | 添加() | 向日期添加天數 |
19 | SUBDATE() | 從日期中減去天數 |
20 | 添加時間() | 不定時添加 |
21 | 子時間() | 從時間中減去時間 |
我特意將功能分成小組,以便更容易理解如何使用它們。下面我們將考慮每組中的一個函數。
您可以在鏈接中找到用於處理日期和時間的函數的完整列表: https: //dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 調用函數
順便說一句,既然我們正在學習這麼多函數,我認為提及運算符SELECT
不必與 一起使用是有幫助的FROM
。它可以返回任何表達式的值。模板給出了其一般視圖:
SELECT expression
如果你想調用一些函數,那麼你需要編寫如下代碼:
SELECT function(options)
下面我將給出一些不借助表格的運算符的操作示例SELECT
:
# | 要求 | 結果 |
---|---|---|
1個 | 選擇 1+1 | 2個 |
2個 | 選擇 13 MOD 5 | 3個 |
3個 | 選擇蘭德() | 0.20771444235715497 |
4個 | 選擇CURDATE() | 2022-06-04 |
5個 | 選擇時間() | 00:06:02 |
6個 | 現在選擇() | 2022-06-04 00:06:43 |
而且,如您所見,在上表中,為了獲取當前日期和時間,您只需要使用以下函數之一:
CURDATE()
- 當前日期;CURTIME()
- 當前時間;NOW()
– 當前日期和時間。
3.3 按年月分組數據
讓我們回憶一下我們的任務表,其中包含員工的任務。讓我們嘗試按年份對該表中的任務進行分組。為此,我們使用函數YEAR()
,它返回傳遞給它的日期的年份。
我們查詢的第一個版本將如下所示:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
此查詢的結果將是:
ID | 員工ID | 姓名 | 年 | 最後期限 |
---|---|---|---|---|
1個 | 1個 | 修復一個前端bug | 2022年 | 2022-06-01 |
2個 | 2個 | 修復後端的一個bug | 2022年 | 2022-06-15 |
3個 | 5個 | 買咖啡 | 2022年 | 2022-07-01 |
4個 | 5個 | 買咖啡 | 2022年 | 2022-08-01 |
5個 | 5個 | 買咖啡 | 2022年 | 2022-09-01 |
6個 | (無效的) | 打掃辦公室 | (無效的) | (無效的) |
7 | 4個 | 享受生活 | (無效的) | (無效的) |
8個 | 6個 | 享受生活 | (無效的) | (無效的) |
我們可以看到所有行都有相同的年份,所以讓我們使用兩個字段 - 年和月。我們查詢的第二個版本將如下所示:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
此查詢的結果將是:
ID | 員工ID | 姓名 | 年 | 月 | 最後期限 |
---|---|---|---|---|---|
1個 | 1個 | 修復一個前端bug | 2022年 | 6個 | 2022-06-01 |
2個 | 2個 | 修復後端的一個bug | 2022年 | 6個 | 2022-06-15 |
3個 | 5個 | 買咖啡 | 2022年 | 7 | 2022-07-01 |
4個 | 5個 | 買咖啡 | 2022年 | 8個 | 2022-08-01 |
5個 | 5個 | 買咖啡 | 2022年 | 9 | 2022-09-01 |
6個 | (無效的) | 打掃辦公室 | (無效的) | (無效的) | (無效的) |
7 | 4個 | 享受生活 | (無效的) | (無效的) | (無效的) |
8個 | 6個 | 享受生活 | (無效的) | (無效的) | (無效的) |
我不會告訴你如何按年和月對任務進行分組——你已經學過這個:使用運算符GROUP BY
。
GO TO FULL VERSION