Problemas con fechas y tiempos (NET y SQL)

26/02/2004 - 18:34 por Emiliano | Informe spam
Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
26/02/2004 - 18:56 | Informe spam
Como estas guardando la Hora? pasame la forma que lo intentas hacer si?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Emiliano" escribió en el mensaje
news:29d601c3fc8e$ce758630$
Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 20/02/2004
Respuesta Responder a este mensaje
#2 Emiliano
26/02/2004 - 19:25 | Informe spam
La hora la escribo manualmente en un combo, como por
ejemplo 12:00:00, la paso a una variable DateTime (que veo
mediante un watch que esta correcta) y luego se ejecuta el
procedimiento (que aparentemente es correcto, tiene el
mismo tipo, etc)
No te paso todo el codigo porque es un poco complicado, la
aplicacion esta dividida en varias capas y se hace
complicado...

lHoraDeIncremento.Hora = CType(cmbHora.Text, DateTime))

Las clases que se encargan de grabar en la base funcionan
bien porque son las mismas que utilizo para hacer todo.

Como estas guardando la Hora? pasame la forma que lo


intentas hacer si?


Salu2
-


-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
-


-


"Emiliano" escribió en el


mensaje
news:29d601c3fc8e$ce758630$
Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date:


20/02/2004


.

Respuesta Responder a este mensaje
#3 ulises
26/02/2004 - 19:28 | Informe spam
Sería de mucha ayuda que envies la forma como lo está
recibiendo el SQL, en todo caso también revisa los tipos
de datos datetime y smalldatetime en el BOL, ellos tienen
límites en las fechas que puedes ingresar, creo que
valores antes de 01/01/1753 no son permitidos para
datetime, (¿porque de esa fecha? creo que basicamente
porque el calendario gregoriano recien fue aceptado a
finales de 1752 por los paises anglosajones); para el
smalldatetime tienen que ser mayores o iguales a
01/01/1900.

Saludos,
Ulises

Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración

.

Respuesta Responder a este mensaje
#4 Anonimo
26/02/2004 - 19:39 | Informe spam
Por si sirve este es el procedimiento que utilizo para el
INSERT


CREATE PROCEDURE HoraDeIncrementoInsert
@Nombre varchar(50),
@Hora datetime
AS

INSERT INTO [HoraDeIncremento] (Nombre, Hora)
VALUES
(@Nombre, @Hora)

RETURN @@IDENTITY
GO

La hora la escribo manualmente en un combo, como por
ejemplo 12:00:00, la paso a una variable DateTime (que


veo
mediante un watch que esta correcta) y luego se ejecuta


el
procedimiento (que aparentemente es correcto, tiene el
mismo tipo, etc)
No te paso todo el codigo porque es un poco complicado,


la
aplicacion esta dividida en varias capas y se hace
complicado...

lHoraDeIncremento.Hora = CType(cmbHora.Text, DateTime))

Las clases que se encargan de grabar en la base funcionan
bien porque son las mismas que utilizo para hacer todo.

Como estas guardando la Hora? pasame la forma que lo


intentas hacer si?


Salu2





-
-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:





-
-


"Emiliano" escribió en el


mensaje
news:29d601c3fc8e$ce758630$
Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system




(http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date:


20/02/2004


.



.

Respuesta Responder a este mensaje
#5 Maximiliano D. A.
26/02/2004 - 19:41 | Informe spam
Hace una cosa!! la variable Hora pasala asi

'YYYYMMDD HH:mm:ss' y me decis como te fue, esto lo podrias hacer desde el
mismo Store con un Convert o desde el Cliente, como mas te guste, si lo
haces desde el cliente pone que la var @hora sea Char(10) por ejemplo

Proba y decinos

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


escribió en el mensaje
news:27e801c3fc97$e6bdb740$
Por si sirve este es el procedimiento que utilizo para el
INSERT


CREATE PROCEDURE HoraDeIncrementoInsert
@Nombre varchar(50),
@Hora datetime
AS

INSERT INTO [HoraDeIncremento] (Nombre, Hora)
VALUES
(@Nombre, @Hora)

RETURN @@IDENTITY
GO

La hora la escribo manualmente en un combo, como por
ejemplo 12:00:00, la paso a una variable DateTime (que


veo
mediante un watch que esta correcta) y luego se ejecuta


el
procedimiento (que aparentemente es correcto, tiene el
mismo tipo, etc)
No te paso todo el codigo porque es un poco complicado,


la
aplicacion esta dividida en varias capas y se hace
complicado...

lHoraDeIncremento.Hora = CType(cmbHora.Text, DateTime))

Las clases que se encargan de grabar en la base funcionan
bien porque son las mismas que utilizo para hacer todo.

Como estas guardando la Hora? pasame la forma que lo


intentas hacer si?


Salu2





-
-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:





-
-


"Emiliano" escribió en el


mensaje
news:29d601c3fc8e$ce758630$
Estoy trabajando con Visual Basic NET y SQLServer y tengo
el siguiente problema:
Pongo una hora en la base de datos (manualmente) en un
campo de tipo DateTime.
Cuando recojo los valores de la tabla por medio de un
procedimiento almacenado paso el valor a un tipo de dato
DateTime este contiene el valor de una fecha (algo asi
como 30/12/1899, creo) mas la hora correspondiente.
Por otro lado cuando intento grabar una hora (que esta
correctamente escrita) me tira un error de
desbordamiento
Alguna idea??? Agradeceria cualquier colaboración




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system




(http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date:


20/02/2004


.



.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 20/02/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida