Problema con la fecha al usar sqlserver con vfp.

253 views
Skip to first unread message

Luis Lopez

unread,
Aug 25, 2016, 5:02:49 PM8/25/16
to Comunidad de Visual Foxpro en Español
Hola A todos, alguien me puede ayudar tengo problema con al recuperar fechas de una tabla por medio de sql a cursores, el problema se me presenta que no me presenta la fecha en formato DD/MM/YYYY solo me la presenta en YYYY-MM-DD como hago.
gracias de antemano

Leonardo Cadena

unread,
Aug 25, 2016, 6:14:26 PM8/25/16
to publice...@googlegroups.com

SEGUN TO CONFIGURACION DE SET DATE TO
SET DATE TO ymd Año,mes ,dia
SET DATE TO dmy dia,mes,año







De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de Luis Lopez <llo...@visualdata.com.ve>
Enviado: jueves, 25 de agosto de 2016 4:02 p. m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Problema con la fecha al usar sqlserver con vfp.
 

Daniel Sánchez

unread,
Aug 25, 2016, 6:57:25 PM8/25/16
to Comunidad de Visual Foxpro en Español
Lo que comenta Leonardo es correcto la visualización de tu fecha en el cursor obtenido depende de la configuración de tu set date en vfp.

Saludos

El 25 de agosto de 2016, 17:14, Leonardo Cadena <leonf...@hotmail.com> escribió:

SEGUN TO CONFIGURACION DE SET DATE TO
SET DATE TO ymd Año,mes ,dia
SET DATE TO dmy dia,mes,año







Enviado: jueves, 25 de agosto de 2016 4:02 p. m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Problema con la fecha al usar sqlserver con vfp.
Hola A todos, alguien me puede ayudar tengo problema con al recuperar fechas de una tabla por medio de sql a cursores, el problema se me presenta que no me presenta la fecha en formato DD/MM/YYYY solo me la presenta en YYYY-MM-DD como hago.
gracias de antemano



--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Luis Lopez

unread,
Aug 25, 2016, 7:03:10 PM8/25/16
to publice...@googlegroups.com
nada hermano, eso lo use, pero no me funciona, sigue saliendo igual    yyy-mm-dd

El 25 de agosto de 2016, 18:14, Leonardo Cadena <leonf...@hotmail.com> escribió:

SEGUN TO CONFIGURACION DE SET DATE TO
SET DATE TO ymd Año,mes ,dia
SET DATE TO dmy dia,mes,año







Enviado: jueves, 25 de agosto de 2016 4:02 p. m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Problema con la fecha al usar sqlserver con vfp.
Hola A todos, alguien me puede ayudar tengo problema con al recuperar fechas de una tabla por medio de sql a cursores, el problema se me presenta que no me presenta la fecha en formato DD/MM/YYYY solo me la presenta en YYYY-MM-DD como hago.
gracias de antemano



--
Luis D López
0414-8933031

Luis Lopez

unread,
Aug 25, 2016, 7:04:28 PM8/25/16
to publice...@googlegroups.com
oye pero ese set date debo colocarlo antes de crear el cursor?

mpulla

unread,
Aug 26, 2016, 12:10:04 AM8/26/16
to Comunidad de Visual Foxpro en Español
Hola Luis

Si tu formulario tiene sesion privada de datos el setting que indicaron debe estar en el load del formulario

Saludos
Mauricio

mpulla

unread,
Aug 26, 2016, 12:10:05 AM8/26/16
to Comunidad de Visual Foxpro en Español

Edwin Duran

unread,
Aug 26, 2016, 8:09:01 AM8/26/16
to Comunidad de Visual Foxpro en Español
Buen Dia 

SQL Server trabaja diferente, tienes que hace la búsqueda AAAAMMDD, lo que tienes que hacer es convertir tu datos  a string

lFec_mov_ini  = Alltrim(Str(Year(Thisform.txtFec_mov_ini.Value)))+Padl(Alltrim(Str(Month(Thisform.txtFec_mov_ini.Value))),2,'0')+Padl(Alltrim(Str(Day(Thisform.txtFec_mov_ini.Value))),2,'0')

TEXT TO cmd NOSHOW text
        Select * from tabla where fecha_mov = '<<lFec_mov_ini>>'
endtext

es decir que si coloco lFec_mov_ini ="20/05/2016" convirtiendo a string seria lFec_mov_ini ="20160820"

Espero darme a entender

Saludos

Edwin Duran

Luis Lopez

unread,
Aug 26, 2016, 8:34:07 AM8/26/16
to publice...@googlegroups.com
ok, gracias Edwin, ahora entiendo porque no hay forma de presentar la fecha como la quiero, creia que era una mal configuracion que habia hecho en el sql o en vfp, ya habia realizado string para presentarlo en los reportes, pero me imaginaba que era una mala configuracion 

Jairo Cedeño - GMail

unread,
Aug 26, 2016, 8:38:04 AM8/26/16
to publice...@googlegroups.com

Estimados, ésta es una función que utilizo para presentar una fecha sin importar de como sea obtenida nada mas tiene que ser fecha, y pues la presento como yo desee


    *!*****************************************************************************
    *! Function....: Gl_Date()
    *! Asunto......: Devuelve una fecha en formatos de usuarios
    *! Actualizado.: 20/Ene/2005
    *! Usada por...: {Todos los programas}
    *!*****************************************************************************
Function Gl_Date
    Paramete dFecha, cFormato
    If Len(Allt(Dtoc(dFecha)))<10
        Return Replicate(' ',Len(cFormato))
    Endif
    cFormato = Upper(cFormato)
    lnDia = Day(dFecha)
    Do Case
        Case cFormato ='DD/MMM/AAAA'
            cFecha =Iif(lnDia<=9,'0'+Str(lnDia,1),Str(lnDia,2))+'/'+Left(Cmonth(dFecha),3)+'/'+Str(Year(dFecha),4)
        Case cFormato ='DD/MMMM/AAAA'
            cFecha =Iif(lnDia<=9,'0'+Str(lnDia,1),Str(lnDia,2))+'/'+Cmonth(dFecha)+'/'+Str(Year(dFecha),4)
        Case cFormato ='DD/MMM/AA'
            cFecha =Iif(lnDia<=9,'0'+Str(lnDia,1),Str(lnDia,2))+'/'+Left(Cmonth(dFecha),3)+'/'+Righ(Str(Year(dFecha),4),2)
        Case cFormato ='DIA/MES/ANO'
            cFecha = Proper(Cdow(dFecha))+', ' + Allt(Str(lnDia,2))+' de '+Proper(Gl_NomMes(Month(dFecha)))+' del '+Str(Year(dFecha),4)
        Case cFormato ='DDMMAAAA'
            dFecha = Dtoc(dFecha)
            cFecha = Left(dFecha,2)+Subs(dFecha,4,2)+Right(dFecha,4)
        Case cFormato ='DD/MMM'
            cFecha = Str(Day(dFecha),2)+"-"+Left(Cmonth(dFecha),3)
        Case cFormato ='DD/MES/AAAA'
            cFecha = Padl(lnDia,2,'0') + '/' + Proper(Gl_NomMes(Month(dFecha))) +'/' + Padl(Year(dFecha),4,'0')

        Other
            cFecha =''
    Endcase
    Return cFecha

Edwin Duran

unread,
Aug 26, 2016, 11:15:31 AM8/26/16
to Comunidad de Visual Foxpro en Español
Me falto comentar que si guardas las horas y quieres buscar por rango de fecha sin importar que hora  mira el ejemplo abajo

saconsumo_fecha.FEC_REG >= '<<lfec_posteo1>>'+' 00:00:00.000' AND saconsumo_fecha.FEC_REG <= '<<lfec_posteo2>>'+' 23:59:59.99'

Germán Fabricio Valdez

unread,
Aug 29, 2016, 2:56:15 PM8/29/16
to Comunidad de Visual Foxpro en Español
cuando te conectas a sql server debes especificar el lenguaje español asi la fecha vendran dia mes año
vcadenaconexionado="Provider=sqloledb;Persist Security Info=True;Packet Size=8192;Current Language=Español;Initial Catalog=tempdb;Data Source="+vservidor+";user id="+vusuario+";password="+vclave

Luis Lopez

unread,
Aug 29, 2016, 4:40:50 PM8/29/16
to publice...@googlegroups.com
Gracias Germán, te comento, puede ser el sql que monte esta en ingles, porque cuando hago la conexion en odbc , le pongo que tome los valores de fecha y moneda que tiene el equipo.
y as,i continua dando los valores de esa forma.

Luis Lopez

unread,
Aug 29, 2016, 4:56:48 PM8/29/16
to publice...@googlegroups.com
Germán, hay otra cosa yo me conecto a las bases de datos por medio de ODBC y la llamo asi
tsql = SQLCONNECT("sqlsistema", "sa", "alfa5086540", .T.)

en este caso que debo agregar aqui para que tome esos valores que tu comentas

Germán Fabricio Valdez

unread,
Aug 29, 2016, 5:01:22 PM8/29/16
to Comunidad de Visual Foxpro en Español
despues de conectarte envias sqlexec("set languaje español")
la documentacion de sql no la temgo ahora pero creo que ese es el comando.
saludos


El jueves, 25 de agosto de 2016, 18:02:49 (UTC-3), Luis Lopez escribió:

Marco Lara

unread,
Aug 10, 2017, 3:23:08 PM8/10/17
to Comunidad de Visual Foxpro en Español


El viernes, 26 de agosto de 2016, 7:09:01 (UTC-5), Edwin Duran escribió:
Buen Dia 

SQL Server trabaja diferente, tienes que hace la búsqueda AAAAMMDD, lo que tienes que hacer es convertir tu datos  a string

lFec_mov_ini  = Alltrim(Str(Year(Thisform.txtFec_mov_ini.Value)))+Padl(Alltrim(Str(Month(Thisform.txtFec_mov_ini.Value))),2,'0')+Padl(Alltrim(Str(Day(Thisform.txtFec_mov_ini.Value))),2,'0')

TEXT TO cmd NOSHOW text
        Select * from tabla where fecha_mov = '<<lFec_mov_ini>>'
endtext

es decir que si coloco lFec_mov_ini ="20/05/2016" convirtiendo a string seria lFec_mov_ini ="20160820"

Espero darme a entender

Saludos

Edwin Duran


Cordial saludo, el problema que se esta planteando no es para envio desde vfp a sql server sino el cursor que devuelve, el cual devuelve con formato YYYY-MM-DD. Con respecto al envio de una fecha como parametro a sql server en lugar de

lFec_mov_ini  = Alltrim(Str(Year(Thisform.txtFec_mov_ini.Value)))+Padl(Alltrim(Str(Month(Thisform.txtFec_mov_ini.Value))),2,'0')+Padl(Alltrim(Str(Day(Thisform.txtFec_mov_ini.Value))),2,'0')
 
Se puede usar

lFec_mov_ini =  DTOS(Thisform.txtFec_mov_ini.Value)

DTOS convierte cualquier fecha en cualquier formato a 'AAAAMMDD'

ZeRoberto

unread,
Aug 10, 2017, 5:51:07 PM8/10/17
to publicesvfoxpro
Prueba con esto

Text To cmd NoShow text
        SELECT * FROM tabla WHERE fecha_mov =?Thisform.txtFec_mov_ini.Value
EndText
Reply all
Reply to author
Forward
0 new messages