1
我在Amazon redshift的sql代碼中看到某處,比較兩個日期時使用:: date。我想知道這三行代碼是否有區別:「:: date」在redshift中的應用是什麼?
start_date < '2016-01-01'
start_date < '2016-01-01'::date
start_date < date('2016-01-01')
我在Amazon redshift的sql代碼中看到某處,比較兩個日期時使用:: date。我想知道這三行代碼是否有區別:「:: date」在redshift中的應用是什麼?
start_date < '2016-01-01'
start_date < '2016-01-01'::date
start_date < date('2016-01-01')
結果在所有三種情況下都是一樣的。
具體做法是:
start_date < '2016-01-01'
試圖比較有varchar
一個date
,但亞馬遜紅移是足夠聰明的varchar
轉換成日期格式進行比較。
start_date < '2016-01-01'::date
正在做兩個date
字段之間的適當比較。這相當於date '2016-01-01'
。
start_date < date('2016-01-01')
似乎也在比較date
字段,但該語法不在Date and Time Functions文檔中。使用::date
的
一個更有用的例子是比較兩個時間戳的時候,你只希望比較的日期,例如:
select end::date - start::date as days FROM table