Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Formato de fechas

57 views
Skip to first unread message

SergioT

unread,
Jan 17, 2006, 12:04:15 PM1/17/06
to
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


Jose Mariano Alvarez

unread,
Jan 17, 2006, 12:26:10 PM1/17/06
to
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 *-Arr@ba-* gma1l P-u-n-t-0 c0n <-- M
(Saca guiones, blancos, acentos, ceros por o)

http://www.sqlgurus.org

Alejandro Mesa

unread,
Jan 17, 2006, 12:50:06 PM1/17/06
to
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

Ing. Paúl Calderón

unread,
Jan 17, 2006, 1:39:51 PM1/17/06
to
ya te respondi en el foro de asp.net
 
Ing. Paúl Calderón
MCP ASP.Net
DCE 4
DCE 2005 2
MSN: pcal...@neural.com.ec
Ecuador
 

SergioT

unread,
Jan 17, 2006, 2:49:25 PM1/17/06
to
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:1A76386D-DDFE-4D52...@microsoft.com...

Jose Mariano Alvarez

unread,
Jan 17, 2006, 4:15:02 PM1/17/06
to
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 *-Arr@ba-* 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

> ................

0 new messages