从时间中提取年月(MySQL中extract函数用法)

本文介绍了 MySQL 中 EXTRACT 函数的基本用法及其在日期时间处理中的应用。通过实例展示了如何利用此函数从日期中提取特定的时间单位,例如年月等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mysql中有一个函数叫extract,用于时间的处理实在是太有用了,比如要从日期中提取出年月,这样写就可以了:


  1. select extract(YEAR_MONTH from begin_date) into begin_month; 

该函数的原型是:


  1. extract (unit from date

其中unit支持的类型有:

MICROSECOND, SECOND,  MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, 
DAY_MICROSECOND, HOUR_MICROSECOND, MINUTE_MICROSECOND, SECOND_MICROSECOND, 
DAY_HOUR, 
DAY_MINUTE, HOUR_MINUTE, 
DAY_SECOND, HOUR_SECOND, MINUTE_SECOND, 
YEAR_MONTH










本文转自 ustb80 51CTO博客,原文链接:http://blog.51cto.com/ustb80/1030604,如需转载请自行联系原作者
### 如何在 MySQL 中仅提取日期的年月日部分 #### 使用 `DATE()` 函数 为了从完整的日期时间戳中仅提取日期部分(即年、月、日),可以使用 `DATE()` 函数。此函数会返回给定日期表达式的日期部分,忽略任何时间信息。 ```sql SELECT DATE('2023-11-28 14:35:59') AS date_only; ``` 这将输出: | date_only | |-------------| | 2023-11-28 | 该方法适用于处理包含时间和日期的数据列,当只需要展示或操作日期而不关心具体时刻时非常有用[^3]。 #### 利用 `EXTRACT` 或者特定于组件的函数 除了上述通用的方式外,还可以采用更细粒度的方法来分别获年份、月份和日子。对于这种需求,既可以选择利用 `EXTRACT` 关键字配合相应的单位参数,也可以直接调用针对各个组成部分设计好的专用函数如 `YEAR()`, `MONTH()`, 和 `DAYOFMONTH()`. ##### 方法一:通过 `EXTRACT` ```sql SELECT CONCAT( EXTRACT(YEAR FROM '2023-11-28'), '-', LPAD(EXTRACT(MONTH FROM '2023-11-28'), 2, '0'), '-', LPAD(EXTRACT(DAY FROM '2023-11-28'), 2, '0') ) AS formatted_date; ``` 这段SQL语句的结果将是: | formatted_date | |----------------| | 2023-11-28 | 这里运用到了字符串拼接以及左填充(`LPAD`)技术以确保月份和天数始终显示两位数字形式[^4]. ##### 方法二:借助独立的功能函数组合实现相同效果 ```sql SELECT CONCAT_WS('-', YEAR('2023-11-28'), MONTH('2023-11-28'), DAY('2023-11-28')) AS composed_date; ``` 执行以上命令同样能得到预期格式化的日期串:"2023-11-28".
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值