Estas son las secuencias de escape ODBC. Ver Date, Time, and Timestamp Escape Sequences para más detalles.
También hay sintaxis similar para uniqueidentifiers
SELECT {guid '00000000-0000-0000-0000-000000000000'}
,
así como llamadas de procedimiento y algunas otras construcciones detalladas de ese enlace.
Respecto al resto de su pregunta, no conozco ninguna forma de tener un literal entero tratado como bigint
ni de ningún recurso en particular que enumere todas las formas de influenciar cómo SQL Server asigna los tipos de datos. Algunas formas están abajo.
;WITH cte(thing) AS
(
SELECT CAST(1 AS SQL_VARIANT) UNION ALL
SELECT $1 UNION ALL
SELECT 1e0 UNION ALL
SELECT 1.0000 UNION ALL
SELECT 2147483648 UNION ALL
SELECT {ts '2011-09-15 01:23:56.123'} UNION ALL
SELECT {d '2011-09-15'} UNION ALL
SELECT { t '13:33:41' } UNION ALL
SELECT {guid '00000000-0000-0000-0000-000000000000'} UNION ALL
SELECT 'Foo' UNION ALL
SELECT N'Foo'
)
SELECT thing,
sql_variant_property(thing,'basetype') AS basetype,
sql_variant_property(thing,'precision') AS precision,
sql_variant_property(thing,'scale') AS scale,
sql_variant_property(thing,'maxlength') AS maxlength
FROM cte
devoluciones
thing basetype precision scale maxlength
------------------------------ ------------------- ----------- ------ ---------
1 int 10 0 4
1.00 money 19 4 8
1 float 53 0 8
1.0000 numeric 5 4 5
2147483648 numeric 10 0 5
2011-09-15 01:23:56.123 datetime 23 3 8
2011-09-15 00:00:00.000 datetime 23 3 8
2011-09-15 13:33:41.000 datetime 23 3 8
00000000-0000-0000-0000-000000 uniqueidentifier 0 0 16
Foo varchar 0 0 3
Foo nvarchar 0 0 6
intento SELECT {i'9999-12-31' } '. como puede ver, hay un error al afirmar que 'i' no es una opción para la extensión de fecha/hora ODBC. intente google para algo como eso – rabudde
Esto se conoce como el formato de fecha y hora de ODBC. –