Have picked up someone's code and this is a part of a where clause, anyone know what the double colon indicates?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
解决方案
It varies based on RDBMS, but if I guess right, that's PostgreSQL, in which case the :: converts a.dc to a date type of date.
In other flavors...
In MS SQL Server 2000:
For built-in user-defined functions
that return a table, the function name
must be specified with a leading
double colon (::) to distinguish it
from user-defined functions that are
not built-in. It also must be
specified as a one-part name with no
database or owner qualifications. For
example: SELECT * FROM
::fn_helpcollations() b.. For built-in
user-defined functions that return a
scalar value, the function name must
be specified as a one-part name (do
not specify database or owner). Do not
specify a leading double colon (::).
In MS SQL Server 2005:
Double-colons are no longer required
for UDFs that return a table.
However...
Double-colons are required in SQL
Server 2005 when granting permissions
on schemas, certificates, endpoints,
and a few other securables.
As well as...
When using User-Defined Types, static
methods of the type must be called
using the double-colon syntax.