Página 1 de 1

ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 4:19 pm
por magjem
hola de nuevo !

aqui con un pequeÑo tranque de interpretacion de fechas

entiendo que en mariadb los campos DATE son 'yyyy-mm-dd'

cuando tengo que hacer una comparacion de fechas

if :odb:fechain < mfecha

como debe de ser el formato de los campos de fecha?

e tratado dtos(fechain < dtos(mfecha)
dtosql

y me da error en el campo de fecha

cual es la forma CORRECTA de definir la fechas para hacer comparaciones?
graCIAS

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 4:31 pm
por ignacio
Hola,

Suponiendo que la expresión la quieres poner en una consulta SQL, lo más sencillo es convertir la fecha en cadena con el formato que requiere MySQL, para ello puedes utilizar el método DToSql(dDate) del propio MariaDB Datasource. Algo así:

Código: Seleccionar todo

cSql := "SELECT * FROM Customers WHERE HIREDATE > " + oMariaDB:DToSql( Date() )
No obstante, lo más sencillo es utilizar toda la potencia del Datasource:

Código: Seleccionar todo

cSql := "SELECT * FROM Customers WHERE HIREDATE > ?"

WITH OJECT oMariaDb
   :Query( :BuildSqlSt( cSql, Date() ) )
END WITH 
Saludos

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 5:23 pm
por magjem
GRAcias Ignacio;

lo que busco es la diferencia en dias de 2 fechas

fecha del campo datein porjempo
contra la fecha de hoy date()

al cliente le cayo el RANSOMWARE y llevo 2 dias tratando de limpiar la encripcion del virus
casi lo e logrado pero ya que todos los programas y archivos se encriptaron por el virus

trate de convertir los dbf a maria
y no doy con la combinacion de formato adecuada para hacer Mdias := ( ::ods:datein - dtosql(date())

y casi no e dormido en 2 dias
gracias por la ayuda

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 6:41 pm
por ignacio
Hola,

Necesito que explique mejor lo que está intentando hacer. Lo siento, pero no termino de enterarme. Las fechas se pueden restar en SQL al igual que en Harbour. Tan sólo hay que usar la función adecuada. Por ejemplo: Registros cuyo campo 'time stamp' haya sido modificado en los dos últimos días:

Código: Seleccionar todo

SELECT * FROM Customers WHERE DATEDIFF( MyTimeStampField, Now() ) <= 2
Le deseo mucha suerte con el virus. Si el ciente utilizaba Dropbox para hacer copia de seguridad de sus datos es posible que pueda recuperar todo. No tiene más que acceder vía web a Dropbox y restaurar versiones anteriores de todos los archivos. Es pesado pero merece la pena. Así lo hice yo y creo que me aseguré el cliente hasta que me jubile ;-)

Saludos

Nota: DateDiff() devuelve los días entre dos fechas y Now() devuelve la Fecha-hora actual

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 6:53 pm
por magjem
GRACIAS de nuevo por tu tiempo

SELECT stock,datein, rel FROM storagex WHERE DATEDIFF( datein, Now() ) <= 8 and !rel

me muestra records de mas de 8 dias de diff
que hice mal?

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 7:11 pm
por magjem
SELECT stock,datein, rel, lst_7day FROM storagex where datein >= '2017-02-14' and datein <= '2017-02-21'and DATEDIFF(now(), datein ) <= 8 ;
update last7day with dtosql(now())


es lo que quisiera hacer per me da error

una ves funcione en heidi
como hago lo mismo en xailer?


el cliente fue tan inteligente que compro un disco de 3tb y que para respaldos en el mismo server.............obvio se jodio tMBIEN
GRACIAS

Re: ayuda con fechas en Mariadb

Publicado: Jue Feb 23, 2017 7:53 pm
por magjem
Gracias MIL!!

quedo como se requeria...............

espero y esto le ayude a otros mariaxaileros!