Podniosłem czyjś kod i jest to część klauzuli Where, czy ktoś wie, co oznacza podwójny dwukropek?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
sql
postgresql
casting
Poklepać
źródło
źródło
Odpowiedzi:
Różni się w zależności od RDBMS, ale jeśli zgaduję, jest to PostgreSQL, w którym to przypadku
::
konwertujea.dc
się na typ datydate
.W innych smakach ...
W MS SQL Server 2000:
W MS SQL Server 2005:
Jednak...
Jak również...
Źródła: Blog BOL i Kalen Delaney
źródło
W tym przypadku jest to rzut do typu daty. :: to rzutowanie typu, które może być również reprezentowane jako CAST (wyrażenie jako typ).
źródło
INTERVAL
obsługę. To pierwszy fragment kodu, jaki kiedykolwiek widziałem, który łączy oba. Byłem tylko ciekawy. Dziękuję za odpowiedź.To
CAST
operacja (rzutowanie na typ daty).Przykład:
SELECT now()::timestamp(0);
Jest równa:
SELECT CAST (now() AS timestamp(0));
Oba kończą
now()
się rzutowaniem dotimestamp
w następującym formacie:YYYY-MM-DD HH:MM:SS
źródło
select 1.2::integer
co zwróci wynik jako1
.To prawdopodobnie obsada, konwertowanie
a.dc
na typdate
.IBM Informix Dynamic Server (IDS) działałby w ten sposób - ale notacja INTERVAL na końcu nie jest poprawna dla IDS, więc przypuszczalnie jest to w rzeczywistości inny DBMS (prawdopodobnie PostgreSQL ).
źródło