datetime y los milisegundos

18/10/2005 - 14:10 por Crandell | Informe spam
Hola y gracias por anticipado.

He creado un atributo del tipo "datetime" porque necesito almacenar la fecha
y hora hasta más allá de los segundos (aunque tampoco me es necesario
llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho tipo
de dato).

El problema es que, aunque almacena bien la información en la forma
"dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato "dd/mm/aaaa
hh:mm:ss.sss" me aparece el siguiente mensaje de error:

"El valor que ha escrito no es coherente con el tipo de datos o el valor de
la columna".

En definitiva, sólo puedo almacenar con la precisión de un segundo y
necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.

Preguntas similare

Leer las respuestas

#1 Maxi
18/10/2005 - 14:35 | Informe spam
Hola, es que la informacion no se almacena asi.

Mira este articulo

http://www.microsoft.com/spanish/ms...art157.asp


Salu2
Maxi [MVP SQL SERVER]


"Crandell" escribió en el mensaje
news:%
Hola y gracias por anticipado.

He creado un atributo del tipo "datetime" porque necesito almacenar la
fecha
y hora hasta más allá de los segundos (aunque tampoco me es necesario
llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho
tipo
de dato).

El problema es que, aunque almacena bien la información en la forma
"dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato "dd/mm/aaaa
hh:mm:ss.sss" me aparece el siguiente mensaje de error:

"El valor que ha escrito no es coherente con el tipo de datos o el valor
de
la columna".

En definitiva, sólo puedo almacenar con la precisión de un segundo y
necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.


Respuesta Responder a este mensaje
#2 PCID
18/10/2005 - 15:31 | Informe spam
La respuesta la encontré en los libros en línea de SQL Server en el
"overview" de los tipos datetime y smalldatetime.

Saludos,

PCID.

-
use northwind
go

declare @F datetime
select @@language

set @F = getdate()
select @F


set @F = '2005-10-09 07:31:00.151'
select @F

/*


-
us_english

(1 row(s) ffected)


-
2005-10-18 07:34:32.543

(1 row(s) ffected)


-
2005-10-09 07:31:00.150

(1 row(s) ffected)

*/



"Crandell" wrote:

Hola y gracias por anticipado.

He creado un atributo del tipo "datetime" porque necesito almacenar la fecha
y hora hasta más allá de los segundos (aunque tampoco me es necesario
llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho tipo
de dato).

El problema es que, aunque almacena bien la información en la forma
"dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato "dd/mm/aaaa
hh:mm:ss.sss" me aparece el siguiente mensaje de error:

"El valor que ha escrito no es coherente con el tipo de datos o el valor de
la columna".

En definitiva, sólo puedo almacenar con la precisión de un segundo y
necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.



Respuesta Responder a este mensaje
#3 Alejandro Mesa
19/10/2005 - 02:58 | Informe spam
Crandell,

cuando trabajes con tipos de datos smalldatetime y datetime, usa el formato
ISO (ve la funcion CONVERT en los libros en linea, especialmente los estilos
112 y 126) para que sql server pueda interpretar correctamente los valores
sin importar el seteo de "set dateformat" ni el lenguaje con que se instalo
sql server. Acuerdate que el rango de valores son diferentes para ambos tipos
y que los smalldatetime tienen una precision hasta el minuto.

select cast('2005-10-18T20:57:25.235' as datetime)


AMB

"Crandell" wrote:

Hola y gracias por anticipado.

He creado un atributo del tipo "datetime" porque necesito almacenar la fecha
y hora hasta más allá de los segundos (aunque tampoco me es necesario
llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho tipo
de dato).

El problema es que, aunque almacena bien la información en la forma
"dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato "dd/mm/aaaa
hh:mm:ss.sss" me aparece el siguiente mensaje de error:

"El valor que ha escrito no es coherente con el tipo de datos o el valor de
la columna".

En definitiva, sólo puedo almacenar con la precisión de un segundo y
necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.



Respuesta Responder a este mensaje
#4 Crandell
20/10/2005 - 08:43 | Informe spam
En ese artículo se dan respuestas a cómo consultar los campos fecha, pero mi
problema no es de consulta, sino de inserción.

Lo que necesito es insertar con la precisión de milisegundos en campos
definidos como datetime, ya que SQL me responde que "El valor que ha
escrito no es coherente con el tipo de datos o el valor de la columna".


"Maxi" escribió en el mensaje
news:%23z8BeE%
Hola, es que la informacion no se almacena asi.

Mira este articulo

http://www.microsoft.com/spanish/ms...art157.asp


Salu2
Maxi [MVP SQL SERVER]


"Crandell" escribió en el mensaje
news:%
> Hola y gracias por anticipado.
>
> He creado un atributo del tipo "datetime" porque necesito almacenar la
> fecha
> y hora hasta más allá de los segundos (aunque tampoco me es necesario
> llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho
> tipo
> de dato).
>
> El problema es que, aunque almacena bien la información en la forma
> "dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato


"dd/mm/aaaa
> hh:mm:ss.sss" me aparece el siguiente mensaje de error:
>
> "El valor que ha escrito no es coherente con el tipo de datos o el valor
> de
> la columna".
>
> En definitiva, sólo puedo almacenar con la precisión de un segundo y
> necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.
>
>


Respuesta Responder a este mensaje
#5 Crandell
20/10/2005 - 08:44 | Informe spam
No tengo problemas en obtener los milisegundos con la función getdate, sino
en insertarlo con la precisión de milisegundos en un campo definido como
datetime, ya que SQL me responde que "El valor que ha escrito no es
coherente con el tipo de datos o el valor de la columna".


"PCID" escribió en el mensaje
news:
La respuesta la encontré en los libros en línea de SQL Server en el
"overview" de los tipos datetime y smalldatetime.

Saludos,

PCID.

-
use northwind
go

declare @F datetime
select @@language

set @F = getdate()
select @F


set @F = '2005-10-09 07:31:00.151'
select @F

/*


-
us_english

(1 row(s) ffected)


-
2005-10-18 07:34:32.543

(1 row(s) ffected)


-
2005-10-09 07:31:00.150

(1 row(s) ffected)

*/



"Crandell" wrote:

> Hola y gracias por anticipado.
>
> He creado un atributo del tipo "datetime" porque necesito almacenar la


fecha
> y hora hasta más allá de los segundos (aunque tampoco me es necesario
> llegarhasta la precisión de 3,33 milisegundos que me proporciona dicho


tipo
> de dato).
>
> El problema es que, aunque almacena bien la información en la forma
> "dd/mm/aaaa hh:mm:ss", cuando intento almacenar con el formato


"dd/mm/aaaa
> hh:mm:ss.sss" me aparece el siguiente mensaje de error:
>
> "El valor que ha escrito no es coherente con el tipo de datos o el valor


de
> la columna".
>
> En definitiva, sólo puedo almacenar con la precisión de un segundo y
> necesitaría un poco más de precisión. ¿Qué es lo que hago mal?.
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida