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

Presto SQL字符串日期转yyyy/mm/dd无函数转换方法咨询

对应解决方法

Presto 环境实现

你提到ds本身就是以yyyy/mm/dd格式存储的文本字段,且要求不使用日期函数,可直接按字符串规则处理:

  • 若你调整表结构将ds改为VARCHAR类型存储yyyy/mm/dd格式的文本,yyyy/mm/dd格式的字符串大小比较逻辑和日期大小比较逻辑完全一致,可直接做范围过滤,不需要转日期类型,查询示例如下:
select ds, count(job_id) as jobs_per_day, sum(time_spent)/3600 as hours_spent 
from job_data  
where ds >='2020/11/01'  and ds <='2020/11/30'  
group by ds ;

MySQL Workbench 8.0 环境实现

MySQL支持标准格式字符串到DATE类型的隐式转换,不需要调用任何日期函数即可直接使用:

  • 插入数据时直接传入'2020/11/30'格式的字符串,MySQL会自动转换为DATE类型存储
  • 查询时直接用'2020/11/01'格式的字符串和DATE类型的ds字段做比较即可,不需要额外转换,查询示例如下:
select ds, count(job_id) as jobs_per_day, sum(time_spent)/3600 as hours_spent 
from job_data  
where ds >='2020/11/01'  and ds <='2020/11/30'  
group by ds ;

如果需要查询结果里的DATE类型ds展示为yyyy/mm/dd格式,不需要写SQL函数,直接在Workbench里调整展示配置即可:依次点击菜单栏Edit -> Preferences -> SQL Editor -> SQL Execution,将Date format设置为%Y/%m/%d,重启Workbench后生效。

内容的提问来源于stack exchange,提问作者Chaudhari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:06:00