文字列のデータ型(例: '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でカスタマーサポートに連絡してください。
理由:日付が文字列形式であり、タイムスタンプに変換する必要があるため。しかし、私はそれを変換する方法がわかりません。
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();
私は次の方法を使用しました、そしてそれは私のために働きました。
date_parse(eta,'%Y-%m-%d %h:%i:%s')
詳細な出力については、以下のドキュメントを参照してください
phpでは、date
関数を使用して文字列を日付に変換できます
$timestamp = date('Y:m:d H:i:s',strtotime('2018-03-27T00:20:00.855556Z'));
in mysql日付フィールドのデータ型を変更する必要があります。