我想将字符串的数据类型(例如:'2018-03-27T00:20:00.855556Z')转换为时间戳(例如:'2018-03-27 00:20:00')。
实际上我在Athena中执行查询:
select * from tb_name where elb_status_code like '5%%' AND
date between DATE_ADD('hour',-2,NOW()) AND NOW();
但我收到了错误:
SYNTAX_ERROR:第1行:100:无法检查varchar是否是时区的时间戳与时区的时间戳
此查询针对“vf_aws_metrices”数据库运行,除非查询限定。请在我们的论坛上发布错误消息或通过查询ID:6b4ae2e1-f890-4b73-85ea-12a650d69278联系客户支持。
原因: 因为日期以字符串格式并且必须转换为时间戳。但我不知道如何转换它。
答案 0 :(得分:2)
尝试使用from_iso8601_timestamp
。请访问以下地址以了解有关时间戳相关功能的更多信息:https://docs.starburstdata.com/latest/functions/datetime.html
presto:tiny> select from_iso8601_timestamp('2018-03-27T00:20:00.855556Z');
_col0
-----------------------------
2018-03-27 00:20:00.855 UTC
(1 row)
我相信你的问题看起来像:
select * from tb_name where elb_status_code like '5%%' AND
from_iso8601_timestamp(date) between DATE_ADD('hour',-2,NOW()) AND NOW();
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:-1)
在 php 中,您可以使用date
函数将字符串转换为日期
$timestamp = date('Y:m:d H:i:s',strtotime('2018-03-27T00:20:00.855556Z'));
mysql 中的您需要更改日期字段的数据类型。