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

Teradata中WHERE子句日期格式适配:查询近15天数据方法

在Teradata中基于MM/DD/YYYY格式的日期列查询近15天数据

你的问题核心是日期列存储为字符串类型(格式为MM/DD/YYYY),直接与Teradata原生DATE类型的CURRENT_DATE比较时,无法被正确解析,导致无匹配结果。需要先将字符串转换为DATE类型再进行范围筛选。

正确查询语句

SELECT *
FROM table_A
WHERE TO_DATE(date, 'MM/DD/YYYY') BETWEEN (CURRENT_DATE - INTERVAL '15' DAY) AND CURRENT_DATE;

关键说明

  • TO_DATE(date, 'MM/DD/YYYY'):将字符串类型的日期列按照月/日/年的格式转换为Teradata原生DATE类型,确保可以和CURRENT_DATE进行正确的日期比较。
  • CURRENT_DATE - INTERVAL '15' DAY:计算当前日期往前推15天的起始日期,替换你原语句中的30天即可匹配需求。

备选写法

如果你的Teradata版本支持,也可以用更简洁的日期加减写法:

SELECT *
FROM table_A
WHERE TO_DATE(date, 'MM/DD/YYYY') >= CURRENT_DATE - 15
  AND TO_DATE(date, 'MM/DD/YYYY') <= CURRENT_DATE;

注意事项

如果日期列存在格式无效的字符串(比如13/32/2022),TO_DATE会抛出错误。此时可以使用TRYCAST函数兼容无效值(转换失败会返回NULL,不会中断查询):

SELECT *
FROM table_A
WHERE TRYCAST(date AS DATE FORMAT 'MM/DD/YYYY') BETWEEN (CURRENT_DATE - INTERVAL '15' DAY) AND CURRENT_DATE;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:50:20