Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 蜂巢日期铸造问题_Sql_Hadoop_Hive_Bigdata_Hiveql - Fatal编程技术网

Sql 蜂巢日期铸造问题

Sql 蜂巢日期铸造问题,sql,hadoop,hive,bigdata,hiveql,Sql,Hadoop,Hive,Bigdata,Hiveql,嗨,在我的配置单元表中,我有一个列,其中的日期值如下 cl1 31102019000000 30112019000000 31122019000000 我尝试将列值转换为如下的日期格式 Select from_unixtime(unix_timestamp(cl1,'yyyy/MM/dd'),'yyyy-MM-dd') from table1; 它打印空。任何帮助都将不胜感激。尝试使用此功能 Select from_unixtime(unix_timestamp(REGEXP_REPLACE

嗨,在我的配置单元表中,我有一个列,其中的日期值如下

cl1
31102019000000
30112019000000
31122019000000
我尝试将列值转换为如下的日期格式

Select from_unixtime(unix_timestamp(cl1,'yyyy/MM/dd'),'yyyy-MM-dd') from table1;
它打印空。任何帮助都将不胜感激。

尝试使用此功能

Select from_unixtime(unix_timestamp(REGEXP_REPLACE(cl1,'0+$',''),'ddMMyyyy'),'yyyy-MM-dd') from table1;
但这将在20202010年失败。 因此,下面的查询将是一个更好的选择

Select from_unixtime(unix_timestamp(cast(cast(cl1/1000000 as bigint) as string),'ddMMyyyy'),'yyyy-MM-dd') from table1;
试试这个

Select from_unixtime(unix_timestamp(REGEXP_REPLACE(cl1,'0+$',''),'ddMMyyyy'),'yyyy-MM-dd') from table1;
但这将在20202010年失败。 因此,下面的查询将是一个更好的选择

Select from_unixtime(unix_timestamp(cast(cast(cl1/1000000 as bigint) as string),'ddMMyyyy'),'yyyy-MM-dd') from table1;

您尝试转换为日期格式的UnixTimeStamp超出范围。 您的时间戳对应于:

GMT: Saturday, August 2, 2955 1:43:20 AM
Your time zone: Saturday, August 2, 2955 5:43:20 AM GMT+04:00
Relative: In 936 years
这是MYSql社区中的一个开放bug。请检查以下URL以供参考。


MySQL数据库的内置函数(如UNIX_TIMESTAMP())将在2038年1月19日03:14:07 UTC之后返回0。(来源:)

您试图转换为日期格式的UnixTimeStamp超出范围。 您的时间戳对应于:

GMT: Saturday, August 2, 2955 1:43:20 AM
Your time zone: Saturday, August 2, 2955 5:43:20 AM GMT+04:00
Relative: In 936 years
这是MYSql社区中的一个开放bug。请检查以下URL以供参考。


MySQL数据库的内置函数(如UNIX_TIMESTAMP())将在2038年1月19日03:14:07 UTC之后返回0。(来源:)

您说您在dd-mm-yyyy中有日期,但发布的数据中根本没有连字符

假设3110201900000为2019年10月31日00:00:00

Select from_unixtime(unix_timestamp(cl1,'ddMMyyyyHHmmss'),'yyyy-MM-dd') from ...

将格式字符串与数据匹配。

您说您的日期为dd-mm-yyyy,但发布的数据中根本没有连字符

假设3110201900000为2019年10月31日00:00:00

Select from_unixtime(unix_timestamp(cl1,'ddMMyyyyHHmmss'),'yyyy-MM-dd') from ...

将格式字符串与数据匹配。

是否为字符串?数字日期是2019年10月31日等吗?Unix时间戳是自1970年1月1日午夜以来的秒数,它们看起来根本不像日期-将这些数字视为Unix时间戳将在2955年8月2日左右的某个地方看到它们它存储为字符串它是字符串吗?数字日期是2019年10月31日等吗?Unix时间戳是自1970年1月1日午夜以来的秒数,它们看起来根本不像日期-将这些数字视为Unix时间戳将在2955年8月2日左右的某个地方看到它们。它存储为字符串。此查询与Hive有关,而不是MySQL。@Pinaki已经回答了这个问题。这个查询是关于Hive而不是MySQL的。而@Pinaki已经回答了这个问题。