Teradata 无法在联合体的第二个选择列表中显示正确的日期格式

Teradata 无法在联合体的第二个选择列表中显示正确的日期格式,teradata,Teradata,我有一个来自两个表的简单查询联合。我发现我在第二个表格中的几列是空白的,其中应该有数据,并且日期显示为整数(在这里可以识别日期,但在YYMMDD中前面有“1”)。首先,我将这个问题的查询缩短为六列。我还确保数据类型正确,甚至将“”更改为NULL,反之亦然,以获得错误。以下是查询: SELECT PRIMARY_SERVICE_DATE AS "Common Date" ,'P' AS "Claim Type" ,PRI_MEMB_ID AS "Member ID" ,PRIMARY_SERVI

我有一个来自两个表的简单查询联合。我发现我在第二个表格中的几列是空白的,其中应该有数据,并且日期显示为整数(在这里可以识别日期,但在YYMMDD中前面有“1”)。首先,我将这个问题的查询缩短为六列。我还确保数据类型正确,甚至将“”更改为NULL,反之亦然,以获得错误。以下是查询:

SELECT 
PRIMARY_SERVICE_DATE AS "Common Date"
,'P' AS "Claim Type"
,PRI_MEMB_ID AS "Member ID"
,PRIMARY_SERVICE_DATE AS "Primary Service Date"
,NULL AS "Admit Date"
,NULL AS "Discharge Date"

FROM MAINDB.TABLECLAIMS
WHERE
PRI_MEMB_ID IN ('99999')

UNION ALL

SELECT
ADMIT_DATE AS "Common Date"
,'' AS "Claim Type"
,CAST(MEMBER_ID AS BIGINT) AS "Member ID"
,NULL AS "Primary Service Date"
,ADMIT_DATE AS "Admit Date"
,DISCHARGE_DATE AS "Discharge Date"

FROM MAINDB.TABLESCLAIMSSUMMARY 
WHERE ADMIT_DATE between '2016-01-01' and '2020-12-31'                                                                                                                                            
AND CAST(MEMBER_ID AS BIGINT) IN ('99999')
此图像链接显示结果以及我需要如何显示。

在Teradata中,UNION[ALL]中的第一个查询确定结果的数据类型,在这种情况下,NULL被视为整数,因此第二个查询的日期隐式转换为INTEGERDATE形式(CYYMMDD)。每当第一个查询包含常量值时,都应该转换为预期的结果数据类型。(此外,当数据类型或长度不同时,您可能需要在第一次查询中显式转换结果,以确保返回的值与预期值相同。)

我假设您希望结果为日期,尽管将Excel格式设置为DateTime。
如果需要时间戳(0),则应在第一个查询中强制转换所有3个日期

欢迎来到SO。请不要在图像中显示数据/所需结果。至于你的问题,看起来你确实在粘贴excel?如果我能让Teradata改变一件事,那就是取消隐式强制转换。由于数据类型不匹配,此操作应失败。谢谢您,Fred!是的,我只想要日期,当我将结果导出到Excel时,我就有了日期。我甚至试着扮演DATE,但还是得到了时间戳。如果你去过坦帕湾区,请告诉我——啤酒我请客!
SELECT 
PRIMARY_SERVICE_DATE AS "Common Date"
,CAST('P' AS CHAR(1)) AS "Claim Type"
,PRI_MEMB_ID AS "Member ID"
,PRIMARY_SERVICE_DATE AS "Primary Service Date"
,CAST(NULL AS DATE) AS "Admit Date"
,CAST(NULL AS DATE) AS "Discharge Date"

FROM MAINDB.TABLECLAIMS
WHERE
PRI_MEMB_ID IN ('99999')
…