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
--
Ing. Jose Mariano Alvarez
J0sé P-u-n-t-0 Marian0 P-u-n-t-0 Álvarez *-Arr@ba-* gma1l P-u-n-t-0 c0n <-- M
(Saca guiones, blancos, acentos, ceros por o)
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
Ing.
Paúl Calderón MCP ASP.Net DCE 4 DCE 2005 2 MSN: pcal...@neural.com.ec Ecuador |
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:1A76386D-DDFE-4D52...@microsoft.com...
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 *-Arr@ba-* gma1l P-u-n-t-0 c0n <-- M
(Saca guiones, blancos, acentos, ceros por o)
"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
> ................