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

求助:改写Access SQL语句实现组合框去重无时间日期(dd-mm-yyyy)

Access组合框日期去重并格式化解决方案

嘿,我来帮你搞定这个Access组合框的日期问题!你的原查询只做了字段去重,但因为CREATED字段带时间戳,哪怕是同一天的记录,只要时间不同就会被当成不同项保留,而且也没处理成你要的dd-mm-yyyy格式。另外要注意,Access用的是Jet SQL,和SQL Server的CONVERT函数不兼容,得用它自带的日期处理函数才行。

这里给你两个可行的修改方案:

方案一:先提取纯日期再格式化

用DateValue函数剥离时间部分,再用Format指定格式,最后通过DISTINCT去重:

SELECT DISTINCT Format(DateValue(table33.CREATED), "dd-mm-yyyy") AS FormattedDate
FROM table33
WHERE table33.CREATED IS NOT NULL  -- 可选:排除空日期项
ORDER BY Format(DateValue(table33.CREATED), "dd-mm-yyyy");
  • DateValue(table33.CREATED):把带时间的日期值转换成纯日期(自动去掉时分秒)
  • Format(..., "dd-mm-yyyy"):将纯日期转换成你需要的日-月-年格式
  • DISTINCT:确保每个格式化后的日期只出现一次
  • ORDER BY:让组合框里的日期按顺序排列,提升用户体验

方案二:直接格式化(更简洁)

Format函数在处理日期时间值时,如果格式字符串只包含日期部分,会自动忽略时间部分,所以可以直接写:

SELECT DISTINCT Format(table33.CREATED, "dd-mm-yyyy") AS FormattedDate
FROM table33
WHERE table33.CREATED IS NOT NULL  -- 可选:排除空日期项
ORDER BY Format(table33.CREATED, "dd-mm-yyyy");

使用提示

把上述查询设置为组合框的行来源,然后在组合框属性里把列数设为1,绑定列设为1,这样就能在组合框里看到去重后的dd-mm-yyyy格式日期啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:11:52