如何将以下字符串转换为日期或时间戳?

Posted

技术标签:

【中文标题】如何将以下字符串转换为日期或时间戳?【英文标题】:How to cast the following string to a date or timestamp? 【发布时间】:2021-10-31 07:23:10 【问题描述】:

我在这样的表中有字符串:

2020-11-16 03:46:26.007+00

我正在尝试将这些转换为日期,以便从中提取日期(2020-11-16)。

SELECT date_parse(updatedat,'%Y-%m-%d %h:%i:%s.%f+%x') FROM table LIMIT 10 

不幸的是它返回:0000-11-16 03:27:13.017

将此字符串转换为可以提取所需部分的日期或时间戳的正确方法是什么?

【问题讨论】:

【参考方案1】:

该字符串遵循时间戳的规范格式,因此您应该能够将其转换为 timestamp 类型,然后转换为 date

> select cast(cast('2020-11-16 03:46:26.007+00' as timestamp) as date);
   _col0
------------
 2020-11-16
(1 row)

【讨论】:

以上是关于如何将以下字符串转换为日期或时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL将日期字符串转换为Unix时间戳

是否有可能使用java将字符串时间戳转换为浮点或日期时间

如何将日期字符串转换为具有不同日期格式的时间戳?

怎么在Oracle中将时间戳转化为日期格式

将 Unix 时间戳转换为日期字符串

如何将所有日期格式转换为日期列的时间戳?