CURDATE()是MySQL中一个非常实用的日期函数。它返回当前日期,可以在数据筛选、插入和计算等多种场景中使用,简洁又高效。
🟢 核心语法与返回值
- 语法 :CURDATE(),无需任何参数,直接调用即可。
- 返回值 :返回MySQL服务器所在时区的当前日期(不包含时间部分)。
- 返回值类型与格式 :返回值的数据类型是DATE。但在不同的使用场景下,表现会有些差异:
- 在字符串上下文中 (如直接SELECT CURDATE();),返回值格式为字符串 'YYYY-MM-DD'。
- 在数字上下文中 (如 SELECT CURDATE() + 0;),返回值会自动转换为数字 YYYYMMDD。
- 核心本质 :需要注意的是,CURDATE() 返回的是一个DATE类型值,并非纯粹的字符串或数字。为了在查询中有效利用索引,建议将其与DATE类型的列进行比较,而不是使用DATE()函数转换 DATETIME 类型的列。
💡 同义词与对比
CURDATE() 的同义词
CURRENT_DATE() 和 CURRENT_DATE 与 CURDATE() 功能完全相同,三者可以互换使用。
与 NOW() 和 CURTIME() 的区别
| 函数 | 返回值 | 使用场景 |
|---|---|---|
| CURDATE() | 当前日期 'YYYY-MM-DD' | 仅关心日期,不关心时间 |
| NOW() | 当前日期和时间 'YYYY-MM-DD HH:MM:SS' | 需要精确记录时间点 |
| CURTIME() | 当前时间 'HH:MM:SS' | 仅关心时间,不关心日期 |