mysql 日期时间函数二
7、DAY(d)返回日期值 d 的日期部分
在MySQL中,DAY()
是一个日期函数,用于从给定的日期或日期时间值中提取日(天)的部分。
假设你有一个日期或日期时间值 d
,那么 DAY(d)
将返回这个日期或日期时间值中的日部分。
例如:
- 如果
d
是'2023-09-17'
,那么DAY(d)
将返回17
。 - 如果
d
是'2023-09-17 14:30:00'
,那么DAY(d)
仍然会返回17
,因为该函数只关心日期部分。
使用此函数时,确保你传递给它的值是一个有效的日期或日期时间值,否则你可能会得到一个错误或不可预测的结果。
以下是一个简单的SQL查询示例,展示如何使用 DAY()
函数:
SELECT DAY('2023-09-17') AS day_of_month;
这将返回:
day_of_month
------------
17
返回值是int类型
8、DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
在 MySQL 中,DATEDIFF()
是一个日期函数,用于计算两个日期之间的天数差异。这个函数返回第一个日期参数(d1
)和第二个日期参数(d2
)之间的天数差。如果 d1
比 d2
早,那么返回的值将是负数;如果 d1
比 d2
晚,那么返回的值将是正数;如果两个日期相同,那么返回的值将是 0。
DATEDIFF()
的语法如下:
DATEDIFF(d1, d2)
其中:
d1
是第一个日期。
d2
是第二个日期。
例如:
- 如果
d1
是'2023-09-17'
,d2
是'2023-09-10'
,那么DATEDIFF(d1, d2)
将返回7
,因为'2023-09-17'
比'2023-09-10'
晚 7 天。 - 如果
d1
是'2023-09-10'
,d2
是'2023-09-17'
,那么DATEDIFF(d1, d2)
将返回-7
,因为'2023-09-10'
比'2023-09-17'
早 7 天。 - 如果
d1
和d2
都是'2023-09-17'
,那么DATEDIFF(d1, d2)
将返回0
,因为两个日期相同。
下面是一个简单的 SQL 查询示例,展示如何使用 DATEDIFF()
函数:
SELECT DATEDIFF('2023-09-17', '2023-09-10') AS days_difference;
这将返回:
days_difference
---------------
7
📌
请注意,当你使用 DATEDIFF()
时,参数 d1
和 d2
的顺序很重要,因为它们决定了返回的天数差的正负。返回值是bigint类型
9、DATE_FORMAT按表达式 f的要求显示日期 d
在 MySQL 中,DATE_FORMAT()
函数用于按照指定的格式显示日期/时间值。这个函数非常有用,因为它允许你将日期或时间值转换为字符串,并且可以自定义这个字符串的格式。
DATE_FORMAT()
函数的语法如下:
DATE_FORMAT(date, format)
其中:
date
是要格式化的日期或时间值。
format
是你希望日期或时间值以何种格式显示的字符串。
格式字符串可以包含各种占位符,以指定日期和时间的各个部分应该如何显示。例如:
%Y
表示四位数的年份(例如:2023)。
%m
表示月份(01 到 12)。
%d
表示一个月中的天数(01 到 31)。
%H
表示小时(00 到 23)。
%i
表示分钟(00 到 59)。
%s
表示秒(00 到 59)。
以及许多其他格式占位符。
以下是一些使用 DATE_FORMAT()
的示例:
- 将日期格式化为 "年-月-日" 的形式:
SELECT DATE_FORMAT('2023-09-17', '%Y-%m-%d') AS formatted_date;
这将返回:
formatted_date
--------------
2023-09-17
- 将日期时间格式化为 "年-月-日 时:分:秒" 的形式:
SELECT DATE_FORMAT('2023-09-17 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_datetime;
这将返回:
formatted_datetime
--------------------
2023-09-17 14:30:00
- 只获取日期的年份部分:
SELECT DATE_FORMAT('2023-09-17', '%Y') AS year_only;
这将返回:
year_only
---------
2023
👋
你可以根据需要组合多个格式占位符,以创建你想要的任何日期/时间格式。记住,DATE_FORMAT()
返回的是一个字符串,而不是一个日期或时间值。如果你需要再次对这个结果进行日期或时间运算,你需要先将字符串转换回日期或时间值。