Doble nota de dos puntos (: :) en SQL

¿Han recogido el código de alguien y esto es parte de una cláusula where, alguien sabe lo que indica el doble del colon?

b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00' 

Varía en base a RDBMS, pero si lo creo correcto, eso es PostgreSQL, en cuyo caso :: convierte a.dc a un tipo de date 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 function debe especificarse con un doble signo inicial (: 🙂 para distinguirlo de las funciones definidas por el usuario que no están incorporadas. También se debe especificar como un nombre de una parte sin calificaciones de database o 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 function debe especificarse como un nombre de una parte (no especifique la database o el propietario). No especifique un doble doble inicial (: :).

En MS SQL Server 2005:

Ya no se requieren dobles puntos para las UDF que devuelven una tabla.

Sin embargo…

Se requieren dos puntos en SQL Server 2005 al otorgar permissions en esquemas, certificates, puntos finales y algunos otros elementos asegurables.

Tanto como…

Cuando se usan types definidos por el usuario, los methods estáticos del tipo deben llamarse usando la syntax de dos puntos.

Fuentes: BOL y Kalen Delaney's Blog

En este caso, es un lanzamiento a un tipo de date. :: es un tipo de conversión que también se puede representar como CAST (expresión AS tipo).

Probablemente sea un elenco, convirtiendo a.dc en date tipo.

IBM Informix Dynamic Server (IDS) funcionaría de esa manera, pero la notación INTERVAL al final no es válida para IDS, por lo que presumiblemente se trata de otro DBMS (probablemente PostgreSQL ).