Varía según el RDBMS, pero si acierto, es PostgreSQL, en cuyo caso el ::
convierte a.dc
a un tipo de fecha de date
.
En otros sabores...
En MS SQL Server 2000:
Para las funciones integradas definidas por el usuario que devuelven una tabla, el nombre de la función debe especificarse con dos puntos (::) al principio para distinguirlo de las funciones definidas por el usuario que no están integradas. También debe especificarse como un nombre de una sola parte sin base de datos o calificaciones de propietario. Por ejemplo:SELECT * FROM::fn_helpcollations() b.. Para las funciones integradas definidas por el usuario que devuelven un valor escalar, el nombre de la función debe especificarse como un nombre de una parte (no especifique la base de datos ni el propietario). No especifique dos puntos dobles iniciales (::).
En MS SQL Server 2005:
Ya no se requieren dos puntos para las UDF que devuelven una tabla.
Sin embargo...
Se requieren dos puntos dobles en SQLServer 2005 al otorgar permisos en esquemas, certificados, puntos finales y algunos otros elementos asegurables.
Así como...
Cuando se utilizan tipos definidos por el usuario, los métodos estáticos del tipo deben llamarse mediante la sintaxis de dos puntos.
Fuentes:BOL y el blog de Kalen Delaney