日期函数:Date_Format、Time_Format、Extract、MakeDate、MakeTime

173 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 15 天,点击查看活动详情

一、前言

大家好,今天文章的内容是:

  • Date_Format()
  • Time_Format()
  • Extract()
  • MakeDate()
  • MakeTime()
  • 等一系列函数

二、内容

Date_Format

Date_Format(d, f):按表达式f的要求显示日期d

mysql> SELECT Now();
+---------------------+
| Now()               |
+---------------------+
| 2023-01-01 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

mysql> SELECT Date_Format(Now(),'%Y年%m月%d日 %r');
+--------------------------------------+
| Date_Format(Now(),'%Y年%m月%d日 %r') |
+--------------------------------------+
| 2023010100:00:00 AM           |
+--------------------------------------+
1 row in set (0.00 sec)

Time_Format

Time_Format(t, f):按表达式f的要求显示时间t

mysql> SELECT Time_Format('22:30:50','%r');
+------------------------------+
| Time_Format('22:30:50','%r') |
+------------------------------+
| 10:30:50 PM                  |
+------------------------------+
1 row in set (0.00 sec)

LocalTime

LocalTime():返回当前日期和时间,同 Now()

mysql> SELECT LOCALTIME();
+---------------------+
| LOCALTIME()         |
+---------------------+
| 2023-01-01 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

CurDate

CurDate():返回当前日期,同Current_Date()

mysql> SELECT CURDATE();
+------------+
| CURDATE()  |
+------------+
| 2023-01-01 |
+------------+
1 row in set (0.00 sec)

CurTime

CurTime():返回当前时间,同Current_Time()

mysql> SELECT CurTime();
+-----------+
| CurTime() |
+-----------+
| 22:30:00  |
+-----------+
1 row in set (0.00 sec)

Current_TimeStamp

Current_TimeStamp():返回当前日期和时间。

mysql> SELECT Current_TimeStamp();
+---------------------+
| Current_TimeStamp() |
+---------------------+
| 2023-01-01 22:30:00 |
+---------------------+
1 row in set (0.00 sec)

SysDate

SysDate():返回当前日期和时间。

mysql> SELECT SysDate();
+---------------------+
| SysDate()           |
+---------------------+
| 2023-01-01 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

Extract

Extract(type from d):从日期d中获取指定的值,type指定返回的值。

mysql> SELECT Extract(YEAR FROM now());
+--------------------------+
| Extract(YEAR FROM now()) |
+--------------------------+
|                     2023 |
+--------------------------+
1 row in set (0.00 sec)

Last_Day

Last_Day(d):返回给定日期d的本月最后一天的日期。

mysql> SELECT Last_Day("2023-01-01");
+------------------------+
| Last_Day("2023-01-01") |
+------------------------+
| 2023-01-31             |
+------------------------+
1 row in set (0.00 sec)

MakeDate

MakeDate(year, day_of_year):根据给定参数year以及所在年中的天数序号(day_of_year,即一年中的第几天)来返回一个日期。

mysql> SELECT MakeDate(2022, 166);
+---------------------+
| MakeDate(2022, 166) |
+---------------------+
| 2022-06-15          |
+---------------------+
1 row in set (0.00 sec)

MakeTime

MakeTime(h, m, s):根据给定的时h、分m、秒s来组合时间,返回h:m:s

mysql> SELECT MakeTime(22, 30, 30);
+----------------------+
| MakeTime(22, 30, 30) |
+----------------------+
| 22:30:30             |
+----------------------+
1 row in set (0.00 sec)

Sec_To_Time

Sec_To_Time(s):将时间s(以秒为单位)格式化,即转换为"时:分:秒"的格式。

mysql> SELECT Sec_To_Time(80542);
+--------------------+
| Sec_To_Time(80542) |
+--------------------+
| 22:22:22           |
+--------------------+
1 row in set (0.00 sec)

Time_To_Sec

Time_To_Sec(s):将时间值s转换为秒数,与Sec_To_Time()互逆。

mysql> SELECT Time_To_Sec("22:22:22");
+-------------------------+
| Time_To_Sec("22:22:22") |
+-------------------------+
|                   80542 |
+-------------------------+
1 row in set (0.00 sec)

Str_To_Date

Str_To_Date(str, format_mask):将字符串转变为日期。

mysql> SELECT Str_To_Date("December 7 2022", "%M %d %Y");
+--------------------------------------------+
| Str_To_Date("December 7 2022", "%M %d %Y") |
+--------------------------------------------+
| 2022-12-07                                 |
+--------------------------------------------+
1 row in set (0.00 sec) 

三、后话

好了,今天的文章内容就到这里,感谢观看。