如何将YYYY-MM-DD日期转换为YYYY-MM日期

时间:2018-04-11 14:44:41

标签: sql teradata

在SQL中。如何将列A从(YYYY-MM-DD)转换为(YYYYMM)?我想以YYYYMM格式而不是YYYY-MM-DD显示日期。

数据类型是TIMESTAMP。使用Teradata Studio 15.10.10。

4 个答案:

答案 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')

SQL小提琴: http://www.sqlfiddle.com/#!9/a6c585/48362

答案 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)