mysql 函数五

2024年 4月 13日 36.8k 0

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论