如何将日期字符串“yyyy-mm-ddThh:mm:ssZ”转换为时间戳

Gab*_*ini 5 mysql sql datetime timestamp

我有一个带有时间戳的 CSV 文件,例如2018-04-04T00:03:04Z. 我创建了一个带有时间戳字段的表,并使用 CSV 中的数据填充该表,但生成了错误:

日期时间值不正确

我的桌子根本没有坐满;执行选择查询返回 0 行。

我尝试使用str_to_date(date_sale, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") 但它返回空值。

早些时候,我使用日期字段作为字符串创建了表,一切正常,但现在我无论如何都需要将此字段转换为时间戳字段才能操作日期。我正在使用表数据导入向导填充表。

有人可以帮忙解决这个问题吗?

Sal*_*n A 3

如果不需要转换为当地时间,您可以使用str_to_time正确的格式:

select str_to_date('2018-04-04T00:03:04Z', '%Y-%m-%dT%H:%i:%sZ')
-- 2018-04-04 00:03:04
Run Code Online (Sandbox Code Playgroud)

如果需要时区转换,则必须确保时区相关表设置正确,然后使用convert_tz函数:

select convert_tz(str_to_date('2018-04-04T00:03:04Z', '%Y-%m-%dT%H:%i:%sZ'), 'zulu', 'system')
Run Code Online (Sandbox Code Playgroud)