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

如何从DBC.tablesv列出带日期后缀的表?求查询语句

Teradata查询:提取符合xxx_test_YYYYMMDD格式的表名

基础匹配方案

适用于仅匹配表名格式、无需验证日期有效性的场景,性能最优:

SELECT DatabaseName, TableName
FROM DBC.TablesV
WHERE TableName LIKE '%\_test\_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ESCAPE '\'
  AND TableKind = 'T';
  • %\_test\_:匹配任意前缀后接_test_(下划线用ESCAPE '\'转义,避免被当作单字符通配符)
  • 8个[0-9]:精准匹配8位数字日期段
  • TableKind = 'T':仅筛选实体表,排除视图、存储过程等非表对象

严格验证日期有效性方案

如果需要确保8位数字是合法的YYYYMMDD日期,可增加日期转换验证:

SELECT DatabaseName, TableName
FROM DBC.TablesV
WHERE TableName LIKE '%\_test\_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ESCAPE '\'
  AND TableKind = 'T'
  AND TO_DATE(SUBSTR(TableName, CHARINDEX('_test_', TableName) + 6, 8), 'YYYYMMDD') IS NOT NULL;
  • SUBSTR(TableName, CHARINDEX('_test_', TableName) + 6, 8):提取表名中_test_后的8位数字部分
  • TO_DATE(..., 'YYYYMMDD') IS NOT NULL:仅保留能成功转换为有效日期的记录,过滤无效日期格式(如20221301、20220230等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:55:18