SQL日期格式转换:YYYY-MM-DD转YYYY-MM及Teradata中TIMESTAMP转YYYYMM
Teradata日期格式转换解决方案
嘿,这两个Teradata日期转换的问题我平时处理得挺多,给你整理了精准的解决办法:
1. 将YYYY-MM-DD格式的日期转换为YYYY-MM格式
这里分两种场景处理,取决于你的字段数据类型:
如果字段是DATE类型:
可以用TO_CHAR函数直接指定输出格式,或者通过CAST结合FORMAT子句实现:-- 方法1:使用TO_CHAR(推荐,语法更直观) SELECT TO_CHAR(your_date_column, 'YYYY-MM') AS formatted_date FROM your_table; -- 方法2:使用CAST + FORMAT SELECT CAST(your_date_column AS VARCHAR(7) FORMAT 'YYYY-MM') AS formatted_date FROM your_table;如果字段是VARCHAR类型的"YYYY-MM-DD"字符串:
直接截取前7位即可,简单高效:SELECT SUBSTR(your_string_date, 1, 7) AS formatted_date FROM your_table;
2. Teradata Studio 15.10.10中,将TIMESTAMP类型的A列转换为YYYYMM格式展示
针对TIMESTAMP类型字段,我们只需要提取日期部分并转换成YYYYMM格式,用TO_CHAR或CAST都能实现:
-- 方法1:推荐使用TO_CHAR,语法清晰易维护 SELECT TO_CHAR(A, 'YYYYMM') AS formatted_timestamp FROM your_table; -- 方法2:使用CAST + FORMAT SELECT CAST(A AS CHAR(6) FORMAT 'YYYYMM') AS formatted_timestamp FROM your_table;
这两种方法都会忽略TIMESTAMP中的时分秒部分,直接输出6位的YYYYMM格式字符串,在Teradata Studio的查询结果里就能看到你想要的展示效果。
内容的提问来源于stack exchange,提问作者Ranalytictsnewb
相关产品推荐
相关产品推荐

