首页 > 解决方案 > SQL将yyyy-MM-ddThh:mm:ssZ形式的字符串转换为日期时间

问题描述

我有一个字符串格式的变量,比如2019-11-25T14:22:56.529Z。我需要提取这个字符串变量的日期部分并提取所有具有最新日期的记录。

ID   time (in string format, not a timestamp yet)
-------------------------------
1    2019-11-25T15:20:56.539Z
2    2019-11-25T04:23:56.522Z
3    2019-11-25T11:11:54.509Z
4    2019-12-25T10:22:36.129Z
5    2019-12-25T09:22:29.349Z
6    2019-12-25T08:22:56.209Z

我想要这个输出:

ID   time
---------------
4    2019-12-25
5    2019-12-25
6    2019-12-25

一般来说,我也想知道如何将这种类型的字符串变量转换为日期格式,以便将来按日期时间排序。谢谢!

标签: sqldatehadoophivetimestamp

解决方案


只需为此使用 substring 函数

select substr(time,1,10) as date from tablename;

更新 这会将其转换回日期,您可以进行排序

select cast(substr(time,1,10) as date) as date from tablename;

推荐阅读