如何将存储为 VARCHAR 的 UTC 日期时间值转换为常规日期时间

Posted

技术标签:

【中文标题】如何将存储为 VARCHAR 的 UTC 日期时间值转换为常规日期时间【英文标题】:How to convert UTC datetime values stored as a VARCHAR to a regular datetime 【发布时间】:2021-07-17 01:14:20 【问题描述】:

我有这个日期 '2021-04-22T17:06:59.391Z' 存储在 UTC 日期时间中,但列数据类型是 VARCHAR。如何将其转换为具有列数据类型 date 的常规日期时间?

现有列(类型VARCHAR)-2021-04-22T17:06:59.391Z 预期输出(类型DATE)-2021-04-22 17:06:59

【问题讨论】:

这能回答你的问题吗? Convert Datetime column from UTC to local time in select statement @brad 由于某种原因,这对我不起作用。 @jarlh 我正在使用连接到 redshift 集群的 SQL Workbench/J。 我有点困惑。 Redshift 中的日期没有时间组件。 【参考方案1】:

您可以使用它来获得预期的结果。

SELECT CONVERT(datetime2(0), CONVERT(DATETIMEOFFSET,'2021-04-22T17:06:59.391Z'))

【讨论】:

能否分享一下错误画面? 无效操作:输入末尾的语法错误位置:8; [SQL 状态=42601,数据库错误代码=500310] 1 条语句失败。

以上是关于如何将存储为 VARCHAR 的 UTC 日期时间值转换为常规日期时间的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP/MySQL 中将日期时间存储为 UTC

我们如何将字符串转换为日期时间并将其存储在 varchar 中

如何将存储为 VARCHAR2 的日期转换为 'MM/DD/YYYY HH24:MI:SS'?

如何使用 JPA 和 Hibernate 在 UTC 时区中存储日期/时间和时间戳

将 UTC 中的 SQL Server 日期时间转换为特定时区

如何转换为 UTC