Hive 前导函数上截止日期的配置单元字符串

Hive 前导函数上截止日期的配置单元字符串,hive,hiveql,lead,Hive,Hiveql,Lead,伙计们,我必须将其从PL/SQL(Oracle)转换为配置单元格式: NVL(TO_CHAR(TO_DATE(SUBSTR(LEAD(DATE_TIME) OVER (PARTITION BY CU_NO ORDER BY CR_NO ,TO_NUMBER(DATE_TIME)),1,6),'YYMMDD'),'YYYYMMDD'),'99991231') END_DATE 我已经试过了: NVL(cast(from_unixtime(UNIX_TIMESTAMP(SUBSTR(LEAD(DA

伙计们,我必须将其从PL/SQL(Oracle)转换为配置单元格式:

NVL(TO_CHAR(TO_DATE(SUBSTR(LEAD(DATE_TIME) OVER (PARTITION BY CU_NO ORDER BY CR_NO ,TO_NUMBER(DATE_TIME)),1,6),'YYMMDD'),'YYYYMMDD'),'99991231') END_DATE
我已经试过了:

NVL(cast(from_unixtime(UNIX_TIMESTAMP(SUBSTR(LEAD(DATE_TIME) OVER (PARTITION BY CU_NO ORDER BY CR_NO ,TO_NUMBER(DATE_TIME)),1,6), 'yyMMdd' ),'yyyyMMdd') as string)'99991231') END_DATE
它总是在“yyyyMMdd”附近的“')处返回缺少的EOF。出了什么问题?

NVL(从unixtime(UNIX)时间戳(SUBSTR(LEAD(DATE\u-TIME))转换为字符串(按CU\u-NO-ORDER按CR\u-NO划分,到\u-NUMBER(DATE\u-TIME)),1,6),'yyMMdd'),'yyyyyyymmdd)
缺少逗号
,'9999123121'

使用缩进格式:

NVL(
    cast(
        from_unixtime(
            UNIX_TIMESTAMP(
                SUBSTR(
                    LEAD(DATE_TIME) OVER (PARTITION BY CU_NO
                                          ORDER BY CR_NO, 
                                                   TO_NUMBER(DATE_TIME)
                                         ),
                    1,6
                ),
                'yyMMdd'
            ),
            'yyyyMMdd'
        ) as string
    ),
'99991231'
)
NVL(从unixtime(UNIX)时间戳(SUBSTR(LEAD(DATE)TIME)到(按CU划分,不按CR划分,到编号(DATE)TIME)),1,6),'yyMMdd'),'yyyyymmdd'作为字符串)
缺少逗号
,'99991231')

使用缩进格式:

NVL(
    cast(
        from_unixtime(
            UNIX_TIMESTAMP(
                SUBSTR(
                    LEAD(DATE_TIME) OVER (PARTITION BY CU_NO
                                          ORDER BY CR_NO, 
                                                   TO_NUMBER(DATE_TIME)
                                         ),
                    1,6
                ),
                'yyMMdd'
            ),
            'yyyyMMdd'
        ) as string
    ),
'99991231'
)

您不需要通过以下方式在订单中添加额外的\u number():

NVL(cast(from_unixtime(UNIX_TIMESTAMP(
                        SUBSTR(
                         LEAD(DATE_TIME) OVER (PARTITION BY CU_NO ORDER BY CR_NO, DATE_TIME)
                        ,1,6), 'yyMMdd')
            ,'yyyyMMdd') 
   as string), '99991231')

您不需要通过以下方式在订单中添加额外的\u number():

NVL(cast(from_unixtime(UNIX_TIMESTAMP(
                        SUBSTR(
                         LEAD(DATE_TIME) OVER (PARTITION BY CU_NO ORDER BY CR_NO, DATE_TIME)
                        ,1,6), 'yyMMdd')
            ,'yyyyMMdd') 
   as string), '99991231')