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() 返回的是一个字符串,而不是一个日期或时间值。如果你需要再次对这个结果进行日期或时间运算,你需要先将字符串转换回日期或时间值。




