2017-01-15 8 views
1

Amazon redshiftのSQLコードのどこかに、:: dateが2つの日付を比較するときに使用されています。私はコードのこれらの3つの行の間に違いがあるのだろうかと疑問に思っています:redshiftで ":: date"のアプリケーションは何ですか?

start_date < '2016-01-01' 
start_date < '2016-01-01'::date 
start_date < date('2016-01-01') 

答えて

3

結果はすべての3つのケースで同じです。

具体的に:

  • start_date < '2016-01-01'varchardateを比較しようとしているが、アマゾン赤方偏移は、比較のために日付形式にvarcharを変換するのに十分なスマートです。

  • start_date < '2016-01-01'::dateは、2つのdateフィールドを適切に比較しています。これはdate '2016-01-01'に相当します。

  • start_date < date('2016-01-01')dateフィールドを比較しているようですが、その構文はDate and Time Functionsのマニュアルにはありません。

2つのタイムスタンプを比較するとき::dateを使用して、より有用な例であり、あなただけの日付を比較したい、例えば:

select end::date - start::date as days FROM table 
関連する問題