web-dev-qa-db-ja.com

日付列のアテナより大きい条件

Athenaで実行しようとしている次のクエリがあります。

SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > '2017-12-31'
GROUP BY observation_date

ただし、このエラーが発生しています:

SYNTAX_ERROR: line 3:24: '>' cannot be applied to date, varchar(10)

これは私には奇妙に思えます。クエリにエラーがありますか、またはAthenaは日付列の大なり演算子を処理できませんか?

ありがとう!

9
efbbrown

この比較を行う前に、キャストを使用して日付を正しくフォーマットする必要があります。以下を試してください:

SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > CAST('2017-12-31' AS DATE)
GROUP BY observation_date

Fiddlerで確認してください: SQL Fidle

UPDATE 17/07/2019

コメントを反映するために

SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > DATE('2017-12-31')
GROUP BY observation_date
12
Barry Piccinni

CAST(x AS date)の便利なエイリアスである date 関数も使用できます。

SELECT * 
FROM date_data
WHERE trading_date >= DATE('2018-07-06');
7
Zerodf