Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将YYYY-MM-DD日期转换为YYYY-MM日期_Sql_Teradata - Fatal编程技术网

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

Sql 如何将YYYY-MM-DD日期转换为YYYY-MM日期,sql,teradata,Sql,Teradata,在SQL中。如何将a列从(YYYY-MM-DD)转换为(YYYYMM)?我想用YYYYMM格式显示日期,而不是YYYY-MM-DD格式 数据类型是时间戳。使用Teradata Studio 15.10.10 您可以使用DATEPART获取日期的年和月部分,转换为varchar、pad和concaternate SELECT DATEPART(YEAR,GETDATE()) SELECT DATEPART(MONTH,GETDATE()) SELECT CAST(DATEPART(YEAR,

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


数据类型是时间戳。使用Teradata Studio 15.10.10

您可以使用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)

您将需要3个函数

MONTH()函数。返回1到12(1月到12月)范围内日期的月份。当日期的月份部分为0时,返回0

YEAR()函数。返回一个4位数的年份

CONCAT()函数用于将两个或多个字符串连接在一起

下面是一个组合这3个函数的例子

选择年份('1969-02-18')、月份('1969-02-18'))

或者你也可以和我一起做

选择日期格式('1969-02-18','%Y%m')

因此,如果您的问题涉及A列,您可以使用

选择日期格式(A、%Y%m)

SQL Fiddle:

在Teradata中,您可以随意设置日期格式。要获得YYYYMM,您将使用

select <your date> (format 'yyyymm') (char(6))
select(格式为'yyyymm')(字符(6))

您的日期列必须是此操作的实际日期,而不是字符串。

对于Teradata,请使用

to_char(tscol, 'YYYYMM') -- varchar result


列A的数据类型是什么?…什么DBMS?到目前为止,您尝试了什么?错误是什么?删除
-
s。您使用的是什么数据库引擎?SQL是一种语言标准,但每个RDBMs实现它的方式非常不同-尤其是对于任何日期函数,请指定您所指的数据库。对未指定dbms的问题的特定于产品的答案。至少告诉我们这是用于哪个dbms。语法错误:数据类型“A”与定义的类型名称“A”不匹配,我使用表中的SELECT DATE_格式(A,'%Y%m')进行了测试。我的
A
是时间戳-可能单独测试月()或年()。
extract(year from tscol) * 100 + extract(month from tscol) -- integer result