Fechas: precisión

25/07/2006 - 11:54 por solusoft | Informe spam
Hola a todos

Intento en Analizado de Consultas SQL 2000 realizar esta insert:


INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:2470' )

Y me da error respecto a la fecha. Error de sintaxis al convertir una cadena
de caracteres a datetime.

Si hago esto:

INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:247' )

Me funciona bien.

en sql server,qué precisión de milisegundos tiene un campo de tipo datetime
?? sólo 3 dígitos ??

Un saludo.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
25/07/2006 - 12:55 | Informe spam
Echa un vistazo en los BOL acerca de la definición de los tipos de datos
DATETIME y SMALLDATETIME, ahí verás que efectivamente la precisión en
milisegundos es de "sólo" tres dígitos


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"solusoft" escribió en el mensaje
news:
Hola a todos

Intento en Analizado de Consultas SQL 2000 realizar esta insert:


INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:2470' )

Y me da error respecto a la fecha. Error de sintaxis al convertir una


cadena
de caracteres a datetime.

Si hago esto:

INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:247' )

Me funciona bien.

en sql server,qué precisión de milisegundos tiene un campo de tipo


datetime
?? sólo 3 dígitos ??

Un saludo.



Respuesta Responder a este mensaje
#2 Alejandro Mesa
25/07/2006 - 14:16 | Informe spam
solusoft,

En cuanto a la precision, 3.33 milisegundos. Pero el problema de tu
representacion no esta relacionado con la precision, sino que estas usando
mas digitos de lo permitido.

La palabra mili nos dice que el valor maximo permitido es 999 (entero), pues
el valor 1000 da paso al proximo segundo. Ahora, la precision nos dice que
sql server puede representar un valor datetime con una exactitud de 3.33
milisegundos. Por lo que los valores '2006-07-25T00:00:00.996' y
'2006-07-25T00:00:00.998' son redondeados al valor de precision mas cercano
'2006-07-25T00:00:00.997'

Ejemplo:

select
cast('2006-07-25T00:00:00.996' as datetime),
cast('2006-07-25T00:00:00.997' as datetime),
cast('2006-07-25T00:00:00.998' as datetime)
go

Por eso no se recomienda usar columns de tipo datetime en restricciones de
unicidad y/o clave primaria.


AMB


"solusoft" wrote:

Hola a todos

Intento en Analizado de Consultas SQL 2000 realizar esta insert:


INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:2470' )

Y me da error respecto a la fecha. Error de sintaxis al convertir una cadena
de caracteres a datetime.

Si hago esto:

INSERT INTO GCL_MSTR_PRESUPUESTO
( CD_MSTR_PRESUP,FC_CREACION )
VALUES ( '3','13/07/2006 13:39:17:247' )

Me funciona bien.

en sql server,qué precisión de milisegundos tiene un campo de tipo datetime
?? sólo 3 dígitos ??

Un saludo.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida