mysql - 日期
日期范围查询
比如:2024-04-05 ~ 2024-04-06
给定这样一个时间范围,我们的查询该怎么写?这道题会影响到我们整体的代码风格
** 情况一**
大部分情况下,客户的实际要求,是查询 5 号加上 6 号的数据;
这时候,你的条件应该是大于 5 号,小于 7 号,可以写成下面这种格式。
select * from demo where gmt_create > DATE('2024-04-05') and gmt_create < DATE_ADD('2024-04-06',INTERVAL 1 DAY);
** 情况二**
也会有小部分人觉得,应该直接使用的条件,大于 5 号,小于 6 号;
实际结果,就是只查询 5 号当天的数据,不包含 6 号的。
当然,这不存在什么问题,区间左闭右开,符合编程人员的思维。只是需要线下沟通,说服客户这么用。
select * from demo where gmt_create > '2024-04-05' and gmt_create < '2024-04-06';
日期比较
-- 日期支持比较运算符(例如:>、<、=)来比较日期的大小。
select * from demo where gmt_create > '2024-04-05';
-- 日期也支持 like 比较。
select * from demo where gmt_create like '2024-04-05%';
日期格式化
-- 字符串转日期
select STR_TO_DATE('2024-01-01 11:11:11', '%Y-%m-%d %H:%s:%s');
-- 日期转字符串
select DATE_FORMAT(NOW(), '%Y-%m-%d %H:%s:%s');
-- 常用的格式化字符:
-- %Y - 四位数的年份
-- %y - 两位数的年份
-- %m - 月份(01-12)
-- %d - 月份中的日(00-31)
-- %H - 小时(00-23)
-- %i - 分钟(00-59)
-- %s - 秒(00-59)
-- 返回当前日期时间,如:2021-03-17 14:46:00
select TIMESTAMP(NOW());
select TIMESTAMP('2021-03-17 14:46:00');
-- 返回当前日期,如:2021-03-17
select TIME(NOW());
select TIME('2021-03-17 14:46:00');
-- 返回当前时间,如:14:46:00
select DATE(NOW());
select DATE('2021-03-17 14:46:00');
当前时间
-- 返回当前日期时间,如:2021-03-17 14:44:06
select now();
-- 返回当前日期,如:2021-03-17
select curdate();
-- 返回当前时间,如:14:46:00
select curtime();
日期加减
-- 日期减一天
SELECT DATE_SUB('2023-03-04', INTERVAL 1 DAY);
-- 日期加一天
SELECT DATE_ADD('2023-03-04', INTERVAL 1 DAY);
-- 两个时间相减,计算日期差
SELECT DATEDIFF('2023-01-02', '2023-01-01')
extract(expr from date)
返回时间的指定部分的值。
详见:https://www.runoob.com/sql/func-extract.html
-- 年
select extract(year from now());
-- 月
select extract(month from now());
-- 日
select extract(day from now());
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY