Hola,
He puesto esto:
Print DateDiff(Now, "01/09/2019 20:22:27", gb.Day)
y me devuelve
-241
Según las instrucciones dice que la primera fecha es la mayor y la segunda la menor además he comprobado que siguen el mismo formato seria:
Fecha1 = 08/09/2019 hh:nn:ss
Fecha2 = 01/09/2019 20:22:27
por que me devuelve -241, por favor, ¿alguien me lo aclara?
Gracias.
DateDiff No Me Funciona O No La Entiendo
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
GambaFeliz:
Compara con la ayuda en inglés.
http://gambaswiki.org/wiki/lang/datediff
Traducción incorrecta a español.
Saludos
Compara con la ayuda en inglés.
http://gambaswiki.org/wiki/lang/datediff
Traducción incorrecta a español.
Saludos
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
Ejemplo simple:
Resultado:
En el caso de arriba las fechas están en formato USA. mm/dd/yy
También puedes crear una fecha.
Saludos
Resultado:
Citar:
En el caso de arriba las fechas están en formato USA. mm/dd/yy
También puedes crear una fecha.
Saludos
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
Muchísimas gracias Shell ***********
Sigo loco con DateDiff después de probar y probar nada me va.
Solo me ha funcionado bien tu última info, con Date(year, month, day) lo demás no me funciona, ves el código y lo analizas y te pone loca la cabeza. Cuando combinas una fecha en String y la comparas con Now
Diossss. Terminas loco loquito.
Muchichisimas Gracias de verdad......
Shell escribió: [Ver mensaje]
Muchísimas gracias Shell ***********
Sigo loco con DateDiff después de probar y probar nada me va.
Solo me ha funcionado bien tu última info, con Date(year, month, day) lo demás no me funciona, ves el código y lo analizas y te pone loca la cabeza. Cuando combinas una fecha en String y la comparas con Now
Diossss. Terminas loco loquito.
Muchichisimas Gracias de verdad......
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
GambaFeliz:
En tu primer ejemplo de arriba del todo. ¿ Era uno de septiembre ?.
Ten en cuenta que lo reconoce como 09/01..mm/dd/yyyy
Entrecomillado claro.
Pero eso creo que estarás acostumbrado si usas SQL.
Hay algunos temas parecidos con preguntas sobre DateDiff en la comunidad.
Usa el buscador, encontraras unas cuantas referencias, no muchas.
A mi me pasó como a ti. Pero a mi nadie me contestoooo.. y fue entonces cuando conocí otros foros donde muchos toman:
Aquí no tomamos eso.
Saludos
En tu primer ejemplo de arriba del todo. ¿ Era uno de septiembre ?.
Ten en cuenta que lo reconoce como 09/01..mm/dd/yyyy
Entrecomillado claro.
Pero eso creo que estarás acostumbrado si usas SQL.
Hay algunos temas parecidos con preguntas sobre DateDiff en la comunidad.
Usa el buscador, encontraras unas cuantas referencias, no muchas.
A mi me pasó como a ti. Pero a mi nadie me contestoooo.. y fue entonces cuando conocí otros foros donde muchos toman:
Aquí no tomamos eso.
Saludos
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
Shell:
Mira lo que acabo de comprobar, que es, lo que me estaba volviendo loco:
' Estándar de Fechas según el origen
' ----------------------------------------------
' Fecha según España: Día/Mes/Año
' Fecha según SQLite3: Año/Mes/Día para el tipo TEXTO
' Fecha según Gambas: Día/Mes/Año pero al pasar a String Gambas3 hace una conversión directa a: Mes/Día/Año
Por lo tanto Gambas3 trabaja con la fechas supongo locales, osea, Día/Mes/Año, pero cuando hace una conversión directa la pasa según el formato USA.
--Yo en lo personal pienso que Gambas3 se equivoca, ya que hace una conversión de por ejemplo -Now- a una variable tipo String pues que convierta también a formato local y no USA--
Estaría bien que opinéis los eruditos en Gambas3. Esto es verdaderamente interesante y educativo.
Mira lo que acabo de comprobar, que es, lo que me estaba volviendo loco:
' Estándar de Fechas según el origen
' ----------------------------------------------
' Fecha según España: Día/Mes/Año
' Fecha según SQLite3: Año/Mes/Día para el tipo TEXTO
' Fecha según Gambas: Día/Mes/Año pero al pasar a String Gambas3 hace una conversión directa a: Mes/Día/Año
Por lo tanto Gambas3 trabaja con la fechas supongo locales, osea, Día/Mes/Año, pero cuando hace una conversión directa la pasa según el formato USA.
--Yo en lo personal pienso que Gambas3 se equivoca, ya que hace una conversión de por ejemplo -Now- a una variable tipo String pues que convierta también a formato local y no USA--
Estaría bien que opinéis los eruditos en Gambas3. Esto es verdaderamente interesante y educativo.
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
Repito: gambas no trabaja con fechas locales ni las fechas en gambas tienen el mes ni el día en ningún sitio concreto.
Repito: Te estás dejando llevar por lo que tus ojos ven en la pantalla y desprecias todos los pasos intermedios.
Repito: Las fechas son números. gambas trabaja con fechas.
¿Qué entiendes por comprobar? ¿Que has usado unas funciones o un programa del que ignoras cómo traduce las fechas (dbsqlitebrowser o, phpmyadmin o, si me apuras, sqlite en consola y te dan resultados distintos?
¿Sabes qué te resultado te daría sqlite si tuvieses el lenguaje del SO en Inglés, o en francés?
Las Fechas, insisto, no son cadenas de caracteres en ningún entorno: Son números.
Sospecho que dado que tus datos parten de un csv como cadenas y que ante la indefinición endémica de tipo de dato de SQLite, te has abonado a aquello de "Sqlite guarda como tipo nativo de fecha las (dos o tres tipos que no interesan y después) cadenas de caracteres". y das por sagrado que esa es "la manera". Pues no. Sqlite admite que el tipo definido como fecha sea una cadena pero también te advierte que "No hay una manera directa de representar los tipos de fecha, por lo que se deberán usar las funciones de conversión intrínsecas" ( cito de memoria).
Las fechas en gambas no son cadenas de caracteres y en cuanto conviertes tus cadenas a fechas estás trabajando con números. A una cadena de caracateres no puedes aplicarle operaciones aritméticas (datediff) ni sumas y restas de usos horarios (locales del sistema).
Eso sólo se puede hacer con números.
El único problema que tienes es que no comprendes bien qué hacen y qué tipo de dato necesitan para trabajar las funciones de fecha.
Por ejemplo, dices:
De las ayudas:
Es decir now devuelve una fecha, es decir, un número compuesto de dos números. No una cadena. Para ver el valor devuelto por now debes usar una función de conversión. Para imprimir el valor en consola debes usar una función de conversión.
¿Sabías, por ejemplo, que print utiliza la conversión de la función str()? Es decir que si haces print now() estás usando la función str para ver esos números.
¿Y quieres ver la fecha convertida a cadena local con o sin los parámetros de localización locales (uso horario, horario de verano, etc)?
En otras palabras: No puedes "ver" un valor fecha, hay que convertirlo antes... y eso queda en manos de las funciones de cada entorno.
Copio y pego (me autocito, ¡toma ya!) la respuesta que dí en otro hilo similar a éste no hace mucho:
Saludos.
gambafeliz escribió: [Ver mensaje]
Repito: gambas no trabaja con fechas locales ni las fechas en gambas tienen el mes ni el día en ningún sitio concreto.
Repito: Te estás dejando llevar por lo que tus ojos ven en la pantalla y desprecias todos los pasos intermedios.
Repito: Las fechas son números. gambas trabaja con fechas.
Citar:
¿Qué entiendes por comprobar? ¿Que has usado unas funciones o un programa del que ignoras cómo traduce las fechas (dbsqlitebrowser o, phpmyadmin o, si me apuras, sqlite en consola y te dan resultados distintos?
¿Sabes qué te resultado te daría sqlite si tuvieses el lenguaje del SO en Inglés, o en francés?
Las Fechas, insisto, no son cadenas de caracteres en ningún entorno: Son números.
Sospecho que dado que tus datos parten de un csv como cadenas y que ante la indefinición endémica de tipo de dato de SQLite, te has abonado a aquello de "Sqlite guarda como tipo nativo de fecha las (dos o tres tipos que no interesan y después) cadenas de caracteres". y das por sagrado que esa es "la manera". Pues no. Sqlite admite que el tipo definido como fecha sea una cadena pero también te advierte que "No hay una manera directa de representar los tipos de fecha, por lo que se deberán usar las funciones de conversión intrínsecas" ( cito de memoria).
Las fechas en gambas no son cadenas de caracteres y en cuanto conviertes tus cadenas a fechas estás trabajando con números. A una cadena de caracateres no puedes aplicarle operaciones aritméticas (datediff) ni sumas y restas de usos horarios (locales del sistema).
Eso sólo se puede hacer con números.
El único problema que tienes es que no comprendes bien qué hacen y qué tipo de dato necesitan para trabajar las funciones de fecha.
Por ejemplo, dices:
Citar:
De las ayudas:
Citar:
Es decir now devuelve una fecha, es decir, un número compuesto de dos números. No una cadena. Para ver el valor devuelto por now debes usar una función de conversión. Para imprimir el valor en consola debes usar una función de conversión.
¿Sabías, por ejemplo, que print utiliza la conversión de la función str()? Es decir que si haces print now() estás usando la función str para ver esos números.
¿Y quieres ver la fecha convertida a cadena local con o sin los parámetros de localización locales (uso horario, horario de verano, etc)?
En otras palabras: No puedes "ver" un valor fecha, hay que convertirlo antes... y eso queda en manos de las funciones de cada entorno.
Copio y pego (me autocito, ¡toma ya!) la respuesta que dí en otro hilo similar a éste no hace mucho:
Citar:
Saludos.
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
última edición por gambafeliz el Lunes, 09 Septiembre 2019, 08:05; editado 1 vez
Shordi:
Voy a responderte a poquito a poco, vale.
Según te he entendido. Yo te voy a responder de forma radical y tu ya me corriges.
Fechas (DATE) = Son números y como números deben tratarse. ¿Es así?
--- Mi mayor fallo es tratar churras con merinas, osea, Fechas (números) y cadenas. --
Con lo cual según te entiendo es que primero como ley, debo pasar las expresiones de cadenas a su equivalente en número, osea, expresión de fecha a Date.
Pero mira este ejemplo,
Yo tengo una expresión de fecha guardada en un archivo .conf como ya sabes por settings, osea, Now, pero antes lo formateo con Format y lo guardo en .conf
Corrige si me equivoco:
1. Primer fallo, debo guardar Now sin formatear en el .conf, no debo tratarlo son date y debo guardar como date, ¿es así?
2. Al recuperar del conf. la recupero en una variable directa, osea As Date, ¿es así?
3. Ya la puedo tratar con DateDiff ya que esta hace la diferencia entre dos Date, ¿es así?
Por lo que mi fin es, esto:
Dim iDesface As Integer = DateDiff(dConf, Now, gb.Second) ' lo pongo así para obtener en positivo ya que me gusta mas así pero lo estrictamente correcto según advierte gambas es poner la fecha mayor antes que la fecha menor, el resultado es tener un Integer negativo (es lo correcto) o tener un integer positivo (es lo que me gusta a mi)
Bueno yo he terminao tu me dices si entendí tus explicaciones.
Voy a responderte a poquito a poco, vale.
Según te he entendido. Yo te voy a responder de forma radical y tu ya me corriges.
Fechas (DATE) = Son números y como números deben tratarse. ¿Es así?
--- Mi mayor fallo es tratar churras con merinas, osea, Fechas (números) y cadenas. --
Con lo cual según te entiendo es que primero como ley, debo pasar las expresiones de cadenas a su equivalente en número, osea, expresión de fecha a Date.
Pero mira este ejemplo,
Yo tengo una expresión de fecha guardada en un archivo .conf como ya sabes por settings, osea, Now, pero antes lo formateo con Format y lo guardo en .conf
Corrige si me equivoco:
1. Primer fallo, debo guardar Now sin formatear en el .conf, no debo tratarlo son date y debo guardar como date, ¿es así?
2. Al recuperar del conf. la recupero en una variable directa, osea As Date, ¿es así?
3. Ya la puedo tratar con DateDiff ya que esta hace la diferencia entre dos Date, ¿es así?
Por lo que mi fin es, esto:
Dim iDesface As Integer = DateDiff(dConf, Now, gb.Second) ' lo pongo así para obtener en positivo ya que me gusta mas así pero lo estrictamente correcto según advierte gambas es poner la fecha mayor antes que la fecha menor, el resultado es tener un Integer negativo (es lo correcto) o tener un integer positivo (es lo que me gusta a mi)
Bueno yo he terminao tu me dices si entendí tus explicaciones.
última edición por gambafeliz el Lunes, 09 Septiembre 2019, 08:05; editado 1 vez
Objetivo: Re: DateDiff No Me Funciona O No La Entiendo
.conf es un archivo de texto por lo que tendrás que guardar la fecha convertida en texto ¿Función a emplear? Str (ver el ejemplo de más arriba)
Exacto, pero al estar almacenada como cadena la conviertes en date. ¿Función a emplear? val (ver el ejemplo de más arriba)
Así es.
Citar:
.conf es un archivo de texto por lo que tendrás que guardar la fecha convertida en texto ¿Función a emplear? Str (ver el ejemplo de más arriba)
Citar:
Exacto, pero al estar almacenada como cadena la conviertes en date. ¿Función a emplear? val (ver el ejemplo de más arriba)
Citar:
Así es.
Página 1 de 2
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.1033s (PHP: -18% SQL: 118%)
Consultas SQL: 30 - Debug off - GZIP Activado