You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中将带时分秒的日期转为仅日期格式及范围查询问题

问题解决方法

1. 转换日期字符串为纯日期格式

如果使用MySQL,可通过两种方式提取纯日期:

  • 直接截取前10位字符(适配你的MM-DD-YYYY开头格式):
SELECT SUBSTRING(`date`, 1, 10) AS pure_date FROM `doc_history`;
  • 解析为日期类型后格式化(更稳妥,适配完整日期字符串结构):
SELECT DATE_FORMAT(STR_TO_DATE(`date`, '%m-%d-%Y %a %h:%i:%s %p'), '%m-%d-%Y') AS pure_date FROM `doc_history`;

参数说明:

  • %m:两位月份,%d:两位日期,%Y:四位年份
  • %a:缩写星期(如Mon),%h:12小时制小时,%i:分钟,%s:秒,%p:AM/PM标识

2. 修正范围查询语句

将字段转换为标准日期格式后再做范围比较,确保按日期逻辑筛选:

SELECT * FROM `doc_history` 
WHERE STR_TO_DATE(`date`, '%m-%d-%Y %a %h:%i:%s %p') 
BETWEEN STR_TO_DATE('07-13-2020', '%m-%d-%Y') AND STR_TO_DATE('07-20-2020', '%m-%d-%Y');

这种方式直接用日期类型比较,比字符串对比更精准。

3. 长期优化建议

若该表需频繁按日期查询,建议将date字段类型修改为DATE或DATETIME,存储时直接存入标准日期格式,避免每次查询都做字符串转换,提升查询效率。

内容的提问来源于stack exchange,提问作者Mike Ahren Rances

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:40:41