Campo DATETIME de VFP a SQL SERVER

983 views
Skip to first unread message

Carlos MauricioTorres Suárez

unread,
Oct 16, 2014, 11:48:50 PM10/16/14
to publice...@googlegroups.com
Estamos migrando la información de nuestras tablas VFP en donde algunos campos son DATETIME y cojemos un SUBSTR de 1 a 19 para quitar AM o PM deben pasar a SQL  SERVER pero nos encontramos con el problema de que unos datos pasan y otros no.  Habrá alguna función en VFP que convierta directamente.  Gracias por su Ayuda.  Saludos 

Douglas Sánchez

unread,
Oct 17, 2014, 12:17:38 AM10/17/14
to publice...@googlegroups.com
Hola esta es una forma de controlar fechas en Sql Server a vfp
DATEPART(mm,FECHA) as nmes, 
DATENAME(month,FECHA) as cmes, 
DATEPART(yy,FECHA) as anio

De vfp a sql Server

x = DATETIME()
?DTOC(x)
lo que envias en el insert seria asi ?x

Saludes



El 16 de octubre de 2014, 21:48, Carlos MauricioTorres Suárez <cama...@ctsoft.com.ec> escribió:
Estamos migrando la información de nuestras tablas VFP en donde algunos campos son DATETIME y cojemos un SUBSTR de 1 a 19 para quitar AM o PM deben pasar a SQL  SERVER pero nos encontramos con el problema de que unos datos pasan y otros no.  Habrá alguna función en VFP que convierta directamente.  Gracias por su Ayuda.  Saludos 




--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476

Antonio Meza

unread,
Oct 17, 2014, 1:20:05 AM10/17/14
to publice...@googlegroups.com
Hola Carlos!!

Seguido veo este tipo de problemas con fechas y servidores como Mysql, Mariadb, firebird, sql server. en mi caso lo que siempre trato es de enviarlo directamente del campo de la tabla o si no por medio de una variable, de esta forma no hay que hacer ninguna conversión, ni usar SET DATE, a mi me ha funcionado desde cerca de 5 años.

Por ejemplo si el valor esta en una tabla o cursor localTabla.CampoDT lo envió como parámetro

Update Tabla Set campoDT = ?localTabla.CampoDT

insert into tabla (campodt) values (?localTabla.CampoDT)

La otra forma es verificar desde VFP que tipo de valor es una variable y convertirla al valor que voy a reemplazar en el servidor, es decir si tengo un textbox donde el usuario capturo un valor o lo obtuve de un archivo de texto, etc 

thisform.textbox.value = "01/01/2014"

xVariable = ctod(thisform.textbox.value)

y luego la envió

Update Tabla Set campoDT = ?xVariable

Hay infinidad de situaciones pero el común denominador es que pases el valor al servidor del mismo tipo de dato, de esta forma no tienes que andar convirtiendo o armando, etc.

Nota: Puse un ejemplo de un campo DATE, porque no recuerdo el comando para convertir a datetime.

saludos
Antonio Meza
Reply all
Reply to author
Forward
0 new messages