Formato de fechas

17/01/2006 - 18:04 por SergioT | Informe spam
Hola

Tengo el siguiente problema:
Win2003 Server en ingles
SqlServer en Ingles
Visual Studio.Net español (uso el vb.net)

En la pantalla capturo las fechas en formato dd/mm/yyyy ( esto lo defino en
el web.config de mi webApp) ej. 11/9/2005 (11 de septiembre)
Al asignar el campo texto a una variable tipo Date basic cambia a 9/11/2005
(11 sep en formato ingles)
luego paso esa variable a un parametro de un dataAdapter para ejecutar un
SP. Teoricamente se envia en formato ingles
el SQL ejecuta el SP pero no obtengo resultado por q el SQL Server está
invirtiendo la fecha nuevamente.

en las propiedades del Servidor de la Base de datos (Enterprise manager) he
cambia do el lenguaje a Español ( estaba en ingles)
luego he utilizado los Store procedures
exec sp_helplogins : para ver q usuarios hay en el servidor
exec sp_defaultlanguage 'NT AUTHORITY\NETWORK SERVICE' : para cambiar el
lenguaje por default a español, ejecute este SP una vez por cada usuario
que me mostro el "sp_helplogins"

Desde el Query analizer ejecuto mi SP colocando en la fecha '9/11/2005'
funciona, que es como teoricamente viene del VB, pero cuando ejecuto mi
aplicacion sigue fallando, como si el SQL recibiera '11/9/2005'

En resumen, como puedo decirle al SQL que interprete el formato de las
fechas que recibe en español!!!!

gracias por la ayuda
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
17/01/2006 - 18:26 | Informe spam
Por que no pasas un tipo de dato fecha en lugar de un string?

Ing. Jose Mariano Alvarez

J0sé P-u-n-t-0 Marian0 P-u-n-t-0 Álvarez ** gma1l P-u-n-t-0 c0n <-- M
(Saca guiones, blancos, acentos, ceros por o)

http://www.sqlgurus.org


"SergioT" wrote:

Hola

Tengo el siguiente problema:
Win2003 Server en ingles
SqlServer en Ingles
Visual Studio.Net español (uso el vb.net)

En la pantalla capturo las fechas en formato dd/mm/yyyy ( esto lo defino en
el web.config de mi webApp) ej. 11/9/2005 (11 de septiembre)
Al asignar el campo texto a una variable tipo Date basic cambia a 9/11/2005
(11 sep en formato ingles)
luego paso esa variable a un parametro de un dataAdapter para ejecutar un
SP. Teoricamente se envia en formato ingles
el SQL ejecuta el SP pero no obtengo resultado por q el SQL Server está
invirtiendo la fecha nuevamente.

en las propiedades del Servidor de la Base de datos (Enterprise manager) he
cambia do el lenguaje a Español ( estaba en ingles)
luego he utilizado los Store procedures
exec sp_helplogins : para ver q usuarios hay en el servidor
exec sp_defaultlanguage 'NT AUTHORITY\NETWORK SERVICE' : para cambiar el
lenguaje por default a español, ejecute este SP una vez por cada usuario
que me mostro el "sp_helplogins"

Desde el Query analizer ejecuto mi SP colocando en la fecha '9/11/2005'
funciona, que es como teoricamente viene del VB, pero cuando ejecuto mi
aplicacion sigue fallando, como si el SQL recibiera '11/9/2005'

En resumen, como puedo decirle al SQL que interprete el formato de las
fechas que recibe en español!!!!

gracias por la ayuda
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2



Respuesta Responder a este mensaje
#2 Alejandro Mesa
17/01/2006 - 18:50 | Informe spam
SergioT,

La mejor forma seria pasandole el parametro en un formato que sea
independiente del lenguaje o del seteo de "dateformat". Para eso, pasas la
fecha en formato "yyyymmdd" (formato ISO) o en caso de necesitar pasar
tiempo, usa "yyyy-mm-ddThh:mm:ss.mmm" (formato ISO8601). De esa forma, SQL
Server interpretara la cadena correctamente como fecha, sin importar el
lenguaje ni el seteo de dateformat.

Ejemplo:

use northwind
go

create procedure p1
@d datetime
as
select *
from dbo.orders
where orderdate = cast(@d as datetime)
go

set dateformat mdy
go

exec p1 '19960704'
go

set dateformat dmy
go

exec p1 '19960704'
go

set language 'spanish'
go

exec p1 '19960704'
go

set language 'us_english'
go

exec p1 '19960704'
go

drop procedure p1
go


AMB

"SergioT" wrote:

Hola

Tengo el siguiente problema:
Win2003 Server en ingles
SqlServer en Ingles
Visual Studio.Net español (uso el vb.net)

En la pantalla capturo las fechas en formato dd/mm/yyyy ( esto lo defino en
el web.config de mi webApp) ej. 11/9/2005 (11 de septiembre)
Al asignar el campo texto a una variable tipo Date basic cambia a 9/11/2005
(11 sep en formato ingles)
luego paso esa variable a un parametro de un dataAdapter para ejecutar un
SP. Teoricamente se envia en formato ingles
el SQL ejecuta el SP pero no obtengo resultado por q el SQL Server está
invirtiendo la fecha nuevamente.

en las propiedades del Servidor de la Base de datos (Enterprise manager) he
cambia do el lenguaje a Español ( estaba en ingles)
luego he utilizado los Store procedures
exec sp_helplogins : para ver q usuarios hay en el servidor
exec sp_defaultlanguage 'NT AUTHORITY\NETWORK SERVICE' : para cambiar el
lenguaje por default a español, ejecute este SP una vez por cada usuario
que me mostro el "sp_helplogins"

Desde el Query analizer ejecuto mi SP colocando en la fecha '9/11/2005'
funciona, que es como teoricamente viene del VB, pero cuando ejecuto mi
aplicacion sigue fallando, como si el SQL recibiera '11/9/2005'

En resumen, como puedo decirle al SQL que interprete el formato de las
fechas que recibe en español!!!!

gracias por la ayuda
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2



Respuesta Responder a este mensaje
#3 SergioT
17/01/2006 - 20:49 | Informe spam
Hola

Yo uso tipos de datos fechas en las tablas y en las variables de vb.net,
pero en los webForms solo hay string, hago algo asi en mis webform
..
dim dFecha as date
dim oObjeto as new clsMiClase
dim ds as new dataset
dFecha=txtFecha.text ' en txtFecha.text hay 11/9/2005, despues de la
asignacion dFecha queda con 9/11/2005

ds=oObjeto.HacerConsulta( dFecha )
..

el metodo "HacerConsulta" del objeto cargo el parametro de la fecha asi:

Me.SqlDA_.SelectCommand.Parameters("@Fecha").Value = d_Fecha
Me.SqlDA_.fill(ds) <==AQUI ES Q LAS COSAS fallan por q aparentemente
el SQL usa 11/9/2005 y no 9/11/2005
...

si en queryanalizer uno 9/11/2005 todo funca pero aparentemente el parametro
no le llega asi al SQL

Los datos de las tablas vienen de una BD clipper asi q se almacenaron como
m/d/y asi q supongo en el sql qdaron igual
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2
<Jose Mariano Alvarez> wrote in message
news:
Por que no pasas un tipo de dato fecha en lugar de un string?

Ing. Jose Mariano Alvarez

J0sé P-u-n-t-0 Marian0 P-u-n-t-0 Álvarez ** gma1l P-u-n-t-0 c0n
<-- M
(Saca guiones, blancos, acentos, ceros por o)

http://www.sqlgurus.org


"SergioT" wrote:

Hola

Tengo el siguiente problema:
Win2003 Server en ingles
SqlServer en Ingles
Visual Studio.Net español (uso el vb.net)

En la pantalla capturo las fechas en formato dd/mm/yyyy ( esto lo defino
en
el web.config de mi webApp) ej. 11/9/2005 (11 de septiembre)
Al asignar el campo texto a una variable tipo Date basic cambia a
9/11/2005
(11 sep en formato ingles)
luego paso esa variable a un parametro de un dataAdapter para ejecutar un
SP. Teoricamente se envia en formato ingles
el SQL ejecuta el SP pero no obtengo resultado por q el SQL Server está
invirtiendo la fecha nuevamente.

en las propiedades del Servidor de la Base de datos (Enterprise manager)
he
cambia do el lenguaje a Español ( estaba en ingles)
luego he utilizado los Store procedures
exec sp_helplogins : para ver q usuarios hay en el servidor
exec sp_defaultlanguage 'NT AUTHORITY\NETWORK SERVICE' : para cambiar el
lenguaje por default a español, ejecute este SP una vez por cada usuario
que me mostro el "sp_helplogins"

Desde el Query analizer ejecuto mi SP colocando en la fecha '9/11/2005'
funciona, que es como teoricamente viene del VB, pero cuando ejecuto mi
aplicacion sigue fallando, como si el SQL recibiera '11/9/2005'

En resumen, como puedo decirle al SQL que interprete el formato de las
fechas que recibe en español!!!!

gracias por la ayuda
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2



Respuesta Responder a este mensaje
#4 Jose Mariano Alvarez
17/01/2006 - 22:15 | Informe spam
Tu problema es dFecha=txtFecha.text
Sugiero analices el metodo DateTime.Parse()

Deberias usar algo asi.
IFormatProvider formato = new System.Globalization.CultureInfo("es");
dFecha= DateTime.Parse(txtFecha.text, formato)

Una vez que tienes el valor en formato datetime deberias no tener problemas.


Saludos

Ing. Jose Mariano Alvarez

J0sé P-u-n-t-0 Marian0 P-u-n-t-0 Álvarez ** gma1l P-u-n-t-0 c0n <-- M
(Saca guiones, blancos, acentos, ceros por o)

http://www.sqlgurus.org


"SergioT" wrote:

Hola

Yo uso tipos de datos fechas en las tablas y en las variables de vb.net,
pero en los webForms solo hay string, hago algo asi en mis webform
...
dim dFecha as date
dim oObjeto as new clsMiClase
dim ds as new dataset
dFecha=txtFecha.text ' en txtFecha.text hay 11/9/2005, despues de la
asignacion dFecha queda con 9/11/2005

ds=oObjeto.HacerConsulta( dFecha )
...

el metodo "HacerConsulta" del objeto cargo el parametro de la fecha asi:

Me.SqlDA_.SelectCommand.Parameters("@Fecha").Value = d_Fecha
Me.SqlDA_.fill(ds) <==AQUI ES Q LAS COSAS fallan por q aparentemente
el SQL usa 11/9/2005 y no 9/11/2005


si en queryanalizer uno 9/11/2005 todo funca pero aparentemente el parametro
no le llega asi al SQL

Los datos de las tablas vienen de una BD clipper asi q se almacenaron como
m/d/y asi q supongo en el sql qdaron igual
Salu2
Sergio
Santa Cruz-Bolivia
DCE-2
<Jose Mariano Alvarez> wrote in message
news:
> Por que no pasas un tipo de dato fecha en lugar de un string?
>
> Ing. Jose Mariano Alvarez
>
> J0sé P-u-n-t-0 Marian0 P-u-n-t-0 Álvarez ** gma1l P-u-n-t-0 c0n
> <-- M
> (Saca guiones, blancos, acentos, ceros por o)
>
> http://www.sqlgurus.org
>
>
> "SergioT" wrote:
>
>> Hola
>>
>> Tengo el siguiente problema:
>> Win2003 Server en ingles
>> SqlServer en Ingles
>> Visual Studio.Net español (uso el vb.net)
>>
>> En la pantalla capturo las fechas en formato dd/mm/yyyy ( esto lo defino
>> en
>> el web.config de mi webApp) ej. 11/9/2005 (11 de septiembre)
>> Al asignar el campo texto a una variable tipo Date basic cambia a
>> 9/11/2005
>> (11 sep en formato ingles)
>> luego paso esa variable a un parametro de un dataAdapter para ejecutar un
>> SP. Teoricamente se envia en formato ingles
>> el SQL ejecuta el SP pero no obtengo resultado por q el SQL Server está
>> invirtiendo la fecha nuevamente.
>>
>> en las propiedades del Servidor de la Base de datos (Enterprise manager)
>> he
>> cambia do el lenguaje a Español ( estaba en ingles)
>> luego he utilizado los Store procedures
>> exec sp_helplogins : para ver q usuarios hay en el servidor
>> exec sp_defaultlanguage 'NT AUTHORITY\NETWORK SERVICE' : para cambiar el
>> lenguaje por default a español, ejecute este SP una vez por cada usuario
>> que me mostro el "sp_helplogins"
>>
>> Desde el Query analizer ejecuto mi SP colocando en la fecha '9/11/2005'
>> funciona, que es como teoricamente viene del VB, pero cuando ejecuto mi
>> aplicacion sigue fallando, como si el SQL recibiera '11/9/2005'
>>
>> En resumen, como puedo decirle al SQL que interprete el formato de las
>> fechas que recibe en español!!!!
>>
>> gracias por la ayuda
>> Salu2
>> Sergio
>> Santa Cruz-Bolivia
>> DCE-2
>>
>>
>>



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