Mysql 时间格式化 DATE_FORMAT使用

本文介绍了一种使用SQL的DATE_FORMAT函数进行时间筛选的方法,通过将Date类型转换为yyyy-MM-dd HH:mm:ss格式,实现对指定时间段内数据的精确查询。
select * from tableName a
where a.time between DATE_FORMAT(#{startTime},'%Y-%m-%d %H:%i:%s') and DATE_FORMAT(#{endTime},'%Y-%m-%d %H:%i:%s')

DATE_FORMAT将传来的Date类型转为自己需要的格式,如%Y-%m-%d %H:%i:%s会将传来的startTime和endTime转为"yyyy-MM-dd HH:mm:ss"格式

<think>我们正在处理用户关于MySQLDATE_FORMAT函数的问题。根据引用内容,我们知道DATE_FORMAT函数用于格式化日期和时间,其基本语法是DATE_FORMAT(date, format),其中date是合法的日期,format是格式字符串,包含特定的格式说明符(如%Y表示四位年份,%m表示两位月份等)。用户提供的引用[1]、[2]、[3]中给出了多个例子和格式说明符的列表。我们将根据这些信息来回答用户的问题。 回答结构: 1.首先介绍DATE_FORMAT函数的作用和基本语法。2.列举常用的格式说明符(可以引用用户提供的引用[3]中的部分常用说明符)。3.给出一些示例,展示如何使用DATE_FORMAT函数格式化日期和时间(可以参考引用中的例子)。4.说明如何结合使用DATE_FORMAT函数与其他日期函数(如NOW()、CURDATE()),如引用[2]所示。注意:用户引用中已经提供了很多信息,我们只需整理并清晰地呈现给用户。相关问题部分: 根据用户的问题,我们生成几个相关问题,以帮助用户深入学习。 现在开始回答:</think>### MySQL DATE_FORMAT 函数详解 `DATE_FORMAT()` 是 MySQL 中用于自定义日期/时间显示格式的核心函数,语法为: ```sql DATE_FORMAT(date, format) ``` - **date**:合法的日期/时间表达式(如 `NOW()`、`CURDATE()` 或日期字段) - **format**:由格式说明符组成的字符串,控制输出样式 #### 常用格式说明符 | 说明符 | 含义 | 示例 | |--------|-------------------|-------------| | `%Y` | 4位年份 | 2023 | | `%y` | 2位年份 | 23 | | `%m` | 月份(01-12) | 07 | | `%c` | 月份(1-12) | 7 | | `%d` | 日期(01-31) | 05 | | `%H` | 24小时制(00-23) | 14 | | `%h` | 12小时制(01-12) | 02 | | `%i` | 分钟(00-59) | 30 | | `%s` | 秒(00-59) | 45 | | `%p` | AM/PM | PM | | `%W` | 星期名 | Wednesday | | `%a` | 缩写星期名 | Wed | | `%M` | 月份名 | July | | `%b` | 缩写月份名 | Jul | #### 实用示例 1. **标准日期时间格式**: ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 输出:2023-07-05 14:30:45 [^2] ``` 2. **美式日期格式**: ```sql SELECT DATE_FORMAT(CURDATE(), '%b %d, %Y'); -- 输出:Jul 05, 2023 [^1] ``` 3. **12小时制带时段**: ```sql SELECT DATE_FORMAT('2023-07-05 14:30:45', '%r'); -- 输出:02:30:45 PM [^3] ``` 4. **季度与年份组合**: ```sql SELECT DATE_FORMAT(NOW(), 'Q%q %Y'); -- 输出:Q3 2023 ``` 5. **周信息显示**: ```sql SELECT DATE_FORMAT(NOW(), 'Week %v of %x'); -- 输出:Week 27 of 2023(ISO周格式)[^3] ``` #### 注意事项 1. 格式字符串需用单引号包裹 2. 非日期值输入返回 `NULL` 3. 可与时间戳字段直接配合: ```sql SELECT DATE_FORMAT(create_time, '%Y/%m') FROM orders; ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值