在SQL中。如何将列A从(YYYY-MM-DD)转换为(YYYYMM)?我想以YYYYMM格式而不是YYYY-MM-DD显示日期。
数据类型是TIMESTAMP。使用Teradata Studio 15.10.10。
答案 0 :(得分:2)
您需要3个功能。
MONTH()函数。返回日期的MONTH,范围为1到12(1月到12月)。当日期的MONTH部分为0时,它返回0。
YEAR()函数。返回4位数年份。
CONCAT()函数用于将两个或多个字符串连接在一起。
所以这是组合3个功能的一个例子。
SELECT CONCAT(年(' 1969-02-18'),月(' 1969-02-18'))
或者您可以使用
进行一次选择DATE_FORMAT(' 1969-02-18','%Y%m')
因此,如果要引用A列,请回答您的问题,您可以使用
选择DATE_FORMAT(A,'%Y%m')
答案 1 :(得分:1)
对于Teradata,请使用
to_char(tscol, 'YYYYMM') -- varchar result
或
extract(year from tscol) * 100 + extract(month from tscol) -- integer result
答案 2 :(得分:0)
在Teradata中,您可以随意格式化日期。要获得YYYYMM,您可以使用
select <your date> (format 'yyyymm') (char(6))
您的日期列需要是此日期的实际日期,而不是字符串。
答案 3 :(得分:-3)
您可以使用DATEPART获取日期的年份和月份部分,投射到varchar,pad和concaternate。
SELECT DATEPART(YEAR,GETDATE())
SELECT DATEPART(MONTH,GETDATE())
SELECT CAST(DATEPART(YEAR,GETDATE()) AS VARCHAR(4)) + RIGHT('00' + CAST(DATEPART(MONTH,GETDATE()) AS VARCHAR(2)),2)