10、DAYNAME(d)返回日期 d 是星期几,如 Monday,Tuesday
在MySQL中,DAYNAME()
是一个函数,它返回给定日期的星期名。这个函数接受一个日期参数,并返回该日期对应的星期名,例如 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 或 'Sunday'。
这里 d
是一个占位符,代表你要查询的日期。你可以用一个具体的日期替换它,或者使用一个日期字段。
例如:
查询2023年10月23日的星期名:
SELECT DAYNAME('2023-10-23');
输出可能是:
Monday
(注意:实际输出取决于2023年10月23日实际上是星期几)
假设你有一个名为 events
的表,其中有一个名为 event_date
的日期字段,你可以查询每个事件的星期名:
SELECT event_name, DAYNAME(event_date) AS event_day_name FROM events;
这将返回每个事件的名称和对应的星期名。
总之,DAYNAME(d)
函数在MySQL中用于获取日期 d
的星期名。
11、DAYOFMONTH(d)计算日期 d 是本月的第几天
在MySQL中,DAYOFMONTH()
函数返回给定日期参数 d
的月中的日。这个函数用于提取日期值中的“日”部分。
例如:
查询2023年10月23日的“日”部分:
sql复制代码SELECT DAYOFMONTH('2023-10-23');
23
在这个例子中,DAYOFMONTH()
函数返回了23,因为23是2023年10月中的日。
如果你有一个包含日期的表,并想提取每行中日期的“日”部分,你可以这样做:
假设你有一个名为 events
的表,其中有一个名为 event_date
的日期字段:
SELECT event_name, DAYOFMONTH(event_date) AS day_of_month FROM events;
这将返回每个事件的名称以及它们各自发生日期的“日”部分。
简而言之,DAYOFMONTH(d)
函数用于获取日期 d
中的“日”部分,即月份中的哪一天。
12、DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
在MySQL中,DAYOFWEEK()
函数返回给定日期参数 d
是星期几,返回值是一个数字,其中1代表星期天,2代表星期一,以此类推,直到7代表星期六。
例如:
查询2023年10月23日是星期几:
SELECT DAYOFWEEK('2023-10-23');
2
在这个例子中,假设2023年10月23日是星期一,那么 DAYOFWEEK()
函数返回了2。
如果你有一个包含日期的表,并想提取每行中日期的星期几数字,你可以这样做:
假设你有一个名为 events
的表,其中有一个名为 event_date
的日期字段:
SELECT event_name, DAYOFWEEK(event_date) AS day_of_week_number FROM events;
这将返回每个事件的名称以及它们各自发生日期的星期几数字。
如果你想要以文字形式(例如 'Monday', 'Tuesday' 等)显示星期几,你可以结合使用 CASE
语句或 ELT()
函数来实现这一点。例如:
SELECT event_name,
CASE DAYOFWEEK(event_date)
WHEN 1 THEN'Sunday'
WHEN 2 THEN'Monday'
WHEN 3 THEN'Tuesday'
WHEN 4 THEN'Wednesday'
WHEN 5 THEN'Thursday'
WHEN 6 THEN'Friday'
WHEN 7 THEN'Saturday'
END AS day_of_week_name
FROM events;
在这个查询中,我们使用了 CASE
语句来根据 DAYOFWEEK()
的返回值输出相应的星期名。
总之,DAYOFWEEK(d)
函数返回给定日期 d
是星期几的数字表示。
13、DAYOFYEAR(d)计算日期 d 是本年的第几天
在MySQL中,DAYOFYEAR()
函数返回给定日期 d
是一年中的第几天。这个函数对于确定某个日期在当年中的位置非常有用。
例如:
查询2023年10月23日是一年中的第几天:
SELECT DAYOFYEAR('2023-10-23');
296
在这个例子中,假设2023年10月23日是一年中的第296天(注意:这个数值取决于具体的年份和日期,这里只是一个示例)。
如果你有一个包含日期的表,并想提取每行中日期是一年中的第几天,你可以这样做:
假设你有一个名为 events
的表,其中有一个名为 event_date
的日期字段:
SELECT
event_name,
DAYOFYEAR(event_date) AS day_of_year
FROM events;
这将返回每个事件的名称以及它们各自发生日期是一年中的第几天。
DAYOFYEAR()
函数对于计算两个日期之间的天数差异或者进行日期范围的筛选等操作非常有用。通过比较两个日期的 DAYOFYEAR()
值,你可以很容易地确定哪个日期在一年中较早或较晚。
总之,DAYOFYEAR(d)
函数返回给定日期 d
在一年中的第几天。
14、EXTRACT(type FROM d)从日期 d 中获取指定的值,type 指定返回的值
在MySQL中,EXTRACT()
函数用于从日期或时间值中提取指定的部分。type
参数指定了要提取的部分(例如,年、月、日等),而 d
是要从中提取的日期或时间值。
EXTRACT()
函数的语法如下:
sql复制代码EXTRACT(type FROMdate)
其中 type
可以是以下值之一:
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND
等。
下面是一些使用 EXTRACT()
函数的示例:
提取年份:
SELECT EXTRACT(YEAR FROM '2023-10-23');
输出:
2023
提取月份:
SELECT EXTRACT(MONTH FROM '2023-10-23');
输出:
10
提取日:
SELECT EXTRACT(DAY FROM '2023-10-23');
输出:
23
在表中使用:
假设你有一个名为 events
的表,其中有一个名为 event_date
的日期字段,你可以这样提取每个事件的年份:
sql复制代码SELECT event_name, EXTRACT(YEARFROM event_date) AS event_year FROM events;
这将返回每个事件的名称以及它们各自发生日期的年份。
EXTRACT()
函数提供了一种灵活的方式来从日期或时间值中提取特定的部分,而不需要使用多个字符串函数或进行复杂的计算。
type可取值为:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH