Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Información Sobre Estándar De Fechas Según Su Origen
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Información Sobre Estándar De Fechas Según Su Origen 
 
Hola,

Después de partirme un poquito la cabeza  

Esto es lo que he averiguado para quien le interese.

Fechas según su estándar y según el origen:

    Fecha según España: Día/Mes/Año
    Fecha según SQLite: Año-Mes-Día
    Fecha según Gambas: Día/Mes/Año

Que como hago esta afirmación, obviamente la de la localización como es España, no coment. Vamos a como obtengo la correcta forma en SQLite:

Cuando vamos a SQLite3 desde la consola y haces pruebas como:

Select date('now'); ' nos va a devolver, 2019-09-11

Con esto es mas que suficiente ya que te va a mostrar la fecha según el estándar de SQLite, también esta la ayuda en su web oficial.

Otra prueba es, intentar descomponer la fecha que no cumpla el estándar, frente a la que cumple, ejemplo:

SELECT strftime('%Y %m %d','2019/11/21'); 'no cumple el estándar, como no cumple el estándar nos devuelve una cadena vacia
SELECT strftime('%Y %m %d','now'); 'cumple el estándar, nos va a devolver, 2019-09-11 11:57

Pero como sabemos igualmente el estándar en Gambas3, esto es casi mas simple:

Print Now ' esto nos va a devolver la fecha local

En fin, espero que le sirva a alguien.

saludos
 



 
última edición por gambafeliz el Miercoles, 11 Septiembre 2019, 17:01; editado 1 vez 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
select date(fecha) implica el uso de una función de conversión (date). El defecto de esa función es yyyy-mm-dd, Ok. hasta ahí estamos de acuerdo... pero no existe nada parecido al "Estándar de Fecha" de Sqlite porque en Sqlite puedes almacenar las fechas de al menos tres maneras distintas... y todas son "auténticas" (por no decir Estándar).
Mira ésto: https://www.sqlitetutorial.net/sqlite-date/
Aquí te cuentan con unos ejemplos sencillos cómo se pueden almacenar de cada una de las maneras y cómo se pueden consultar.

Veo que buscas conclusiones claras y simples al tema. No las hay, sorry. Adopta uno de los muchos sistemas y maneras que hay de tratar las fechas y acógete a él como si fuese Verdad Revelada... sin dejar de ser Ateo, claro.

Para añadir ingrediente al potage:
En el manual de Sqlite, cuando habla de la función strftime, podemos leer:

Citar:
Tenga en cuenta que todas las demás funciones de fecha y hora se pueden expresar en términos de strftime ():

Función        Equivalente de strftime()
date(...)         strftime('%Y-%m-%d', ...)
time(...)         strftime('%H:%M:%S', ...)
datetime(...)         strftime('%Y-%m-%d %H:%M:%S', ...)
julianday(...)         strftime('%J', ...)

Las únicas razones para proporcionar funciones que no sean strftime () son por conveniencia y por eficiencia.
La negrita es mía.

Respecto a gambas ya te he dicho que no hay ningún estándar de fecha. Todo depende de la función de conversión que user. Si usas cDate, será el formato local , si usas Val será el formato americano, etc.
No existe ningún estándar de fecha.
La negrita también es mía, claro.
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 11 Septiembre 2019, 18:12; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Oiga, señor desconocido

Yo lo que pretendo es, me explico.

Un día yo ví el formato TEXTO de la fecha en SQLite y era Año-Mes-Día que como puedes comprobar esta en la ayuda. Yo me decanté por esta forma.

Un día hablamos y me dijiste que se lo tragaba todos las formas y me dijo, bueno, pues en vez de Año-Mes-Día pues para facilitar algo mi trabajo pues pongo Año/Mes/Día pero siguiendo el supuesto estándar.

Y después de hacer ya mucho en el programa, me veo en la necesidad de algo muy simple, hacer una SELECT donde le pido dos cosas a la base de datos, la suma de los importes y la fecha agrupada pero por mes y año-actual

Y como lo hago por un SELECT y mi fecha no cumple el estándar aunque si la posición Año/Mes/Día pues no funciona, me devuelve 0 patatero.

Entonce me pregunto, que falla. Y me voy a las raíces, tonto de mi que no lo hice nunca. Puse SELECT date('now'); y me devuelve el estándar de manual del interior de SQLite, ¿entonces? me dije yo. Ahora voy a cambiar el formato de todas mis entrada a SQLite de (Año/Mes/Día a Año-Mes-Día) y taca-ta, funciona bien.

Pues como dicen en mi casa 2+2 = 4 pues no me digas mas rantanplan.

shordi guapo que quieres que te diga, yo soy muy simple pero quiero una solución solida. Por Dios, no esta tan mal lo que opino, ¿no?

Gracias, se que tienes razón pero ahí cosas de las que me cuentas que si tu yo no nos vemos en persona, yo que soy tan tozudo pues es difícil que me las metas por embudo.

Saludos, joven
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Entendido
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
shordi escribió: [Ver mensaje]
Entendido


Perdoname shordi como sabes me es importante tu opinión para mi. Y tu -Entendido-

¿Tiene algún significado, negativo, de pasoteo, que debo entender?

¿Que no sabes que hacer conmigo :)?

¿Tengo al menos algo de razón tras explicar lo que funciona de lo que no funciona, o es que no he demostrado que es verdad o son verdad mis pruebas?

Por cierto esto te lo pregunto desde la mayor educación y respeto, no te estoy desafiando ni deseo que parezca así. --Me gusta dejar claro todo con todas las personas, aunque parezca pesado--

Gracias.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Ningún problema, bro. Sólo que uno tiene que saber cuando callar igual que cuando hablar y suelo venirme arriba y hablar de más. Repito: Ningún problema.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
shordi escribió: [Ver mensaje]
Ningún problema, bro. Sólo que uno tiene que saber cuando callar igual que cuando hablar y suelo venirme arriba y hablar de más. Repito: Ningún problema.


Menos mal, me has dado esperanza.  
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Me permito intervenir y redundar en lo que comenta Shordi. Por desgracia, cada marca tiene su propio estándar en cuestiones de fecha. La solución de trabajar con el patrón de cada programa y que el SO sea el encargado de dárselo a cada usuario como corresponda es adecuada. Pero hay una solución más básica, que es precisamente la que emplean todos los programas. Y antes de explicarla, una aclaración.
Shordi, te voy a llevar la contraria —bueno, en realidad te voy a dar la razón, pero es que soy así—, efectivamente, no hay un criterio claro entre programas e, incluso, dentro de programas como ocurre con MSExcel. Pero sí que hay normalización y estándar de fechas: la ISO 8.601 —con el visto bueno de la IAU: Unión Astronómica Internacional—, que es la que sigue SQLite correctamente. Indica no solo el orden de los datos, sino también, como has visto, los separadores. Es el que deberíamos usar TODOS, porque emplea el sistema de valor posicional, el mismo que empleamos para leer los números —de izquierda a derecha, de mayor valor a menor—. Deberíamos, digo, porque hasta los calendarios de gúgel se lo salta. Lo juro.
Pero aun así hay un problema más grave. En el mundo hay en uso unos cuarenta calendarios de los que unos diez son empleados por más de veinte millones de personas CADA UNO. Vale que el gregoriano es el más extendido y que la inmensa mayoría del mundo lo emplea, aunque use otro particular a la vez, pero ahí están.
La solución también la da la IAU, con un invento de José Escaligero —no recuerdo su nombre italiano ni latinizado— allá por los siglos XVII o XVIII: la fecha juliana —no confundir con el calendario juliano—. Es el número de días transcurrido desde una fecha que él supuso prehistórica. Todos los sistemas emplean un algoritmo parecido, aunque vuelve a surgir el problema de la falta de homogeneidad en el criterio de origen. Cada cual tiene el suyo, aunque exista una norma internacional que ya lo establezca —de nuevo, por la IAU; por cierto, nada de emplear GMT, que no existe, el término adecuado es UTC—. Ése es el tipo de dato Date.
En fin, que hoy estoy que me enrollo. La solución es pasar los términos de local a estándar adecuando el orden y los signos con año, mes y día, operar con con Date exclusivamente, y volver a «escupirlos» con año, mes y día usando los valores locales del SO. Eso significa que PREVIAMENTE has de saber cuáles son esos valores locales, que es donde está, realmente, el truco. Por cierto, yo no lo sé hacer en Gambas3: agradeceré indicaciones porque todos los programas de astronomía que hago, los hago para el público hispano.

Siento el tocho, que ya van dos veces hoy.

 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Grandamakulo escribió: [Ver mensaje]
Me permito intervenir y redundar en lo que comenta Shordi. Por desgracia, cada marca tiene su propio estándar en cuestiones de fecha. La solución de trabajar con el patrón de cada programa y que el SO sea el encargado de dárselo a cada usuario como corresponda es adecuada. Pero hay una solución más básica, que es precisamente la que emplean todos los programas. Y antes de explicarla, una aclaración.
Shordi, te voy a llevar la contraria —bueno, en realidad te voy a dar la razón, pero es que soy así—, efectivamente, no hay un criterio claro entre programas e, incluso, dentro de programas como ocurre con MSExcel. Pero sí que hay normalización y estándar de fechas: la ISO 8.601 —con el visto bueno de la IAU: Unión Astronómica Internacional—, que es la que sigue SQLite correctamente. Indica no solo el orden de los datos, sino también, como has visto, los separadores. Es el que deberíamos usar TODOS, porque emplea el sistema de valor posicional, el mismo que empleamos para leer los números —de izquierda a derecha, de mayor valor a menor—. Deberíamos, digo, porque hasta los calendarios de gúgel se lo salta. Lo juro.
Pero aun así hay un problema más grave. En el mundo hay en uso unos cuarenta calendarios de los que unos diez son empleados por más de veinte millones de personas CADA UNO. Vale que el gregoriano es el más extendido y que la inmensa mayoría del mundo lo emplea, aunque use otro particular a la vez, pero ahí están.
La solución también la da la IAU, con un invento de José Escaligero —no recuerdo su nombre italiano ni latinizado— allá por los siglos XVII o XVIII: la fecha juliana —no confundir con el calendario juliano—. Es el número de días transcurrido desde una fecha que él supuso prehistórica. Todos los sistemas emplean un algoritmo parecido, aunque vuelve a surgir el problema de la falta de homogeneidad en el criterio de origen. Cada cual tiene el suyo, aunque exista una norma internacional que ya lo establezca —de nuevo, por la IAU; por cierto, nada de emplear GMT, que no existe, el término adecuado es UTC—. Ése es el tipo de dato Date.
En fin, que hoy estoy que me enrollo. La solución es pasar los términos de local a estándar adecuando el orden y los signos con año, mes y día, operar con con Date exclusivamente, y volver a «escupirlos» con año, mes y día usando los valores locales del SO. Eso significa que PREVIAMENTE has de saber cuáles son esos valores locales, que es donde está, realmente, el truco. Por cierto, yo no lo sé hacer en Gambas3: agradeceré indicaciones porque todos los programas de astronomía que hago, los hago para el público hispano.

Siento el tocho, que ya van dos veces hoy.


Pero eso es un tema tangencial que no viene al caso... exactamente. Para lo que nos interesa, es decir, grabar, recuperar y ver fechas desde base de datos, sólo importa una cosa (a parte de saber lo que quieres ver, claro, léase estándares locales, valores de uso horario, etc.) conocer las funciones de visualización de fecha del entorno que utilizas (en nuestro caso son tres: sqlite, mysql y gambas ) y utilizarlas correctamente.

¿Que SQlite alamacena el estándar ISO? Mejor para él, pero yo quiero ver la fecha en el formato que a mí me interese en cada momento, o sea función strftime. ¿Que gambas cuando hace print utiliza otro? Mejor para él, pero yo usaré CDate, val, date o Str según me interese, etc.
Todo lo demás es anecdótico o secundario al problema.

Y dejo el tema, que ya es un cansineo.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Información Sobre Estándar De Fechas Según Su Origen 
 
Yo señores, para resumir.

Mi punto de vista y mi afán es:

Yo trabajo con cada estándar de cada origen, que SQLite tiene tres, pues mejor para todos, así podemos elegir, yo en lo particular elegí el formato TEXTO (Año-MES-DIA) con la salvedad que cuando hablo con SQLite no vale cualquier forma, osea, no vale (Año/MES/DIA) ya que para el es una cadena pero no una fecha para poder la tratar como tal.

Teniendo en cuenta eso, así quiero trabajar, SQLite su estándar, si tiene un formato o estándar en su origen Gambas3, por ejemplo pedir Now directamente a Gambas3 y te lo devuelve según la fecha local, pues a mi me gusta respetar su forma de hacer el formato, pero y esto es lo importante para mi y siempre lo respecto, yo creo funciones para las presentaciones de pantalla y salidas en general para el origen que yo deseo que salga esta info sobre fecha. Y hay esta la clave del cordero por lo menos para mi.

Entonces, me gusta:
Respetar y trabajar con los estándar de cualquier base de datos y no cambiarlos, nunca.
Respetar y trabajar con los estándar de Gambas3 y no cambiarlos, nunca, claro esta si los conozco.
Y para terminar modificar estos datos para las salidas que a mi y a mis usuarios convenga, aquí nada de estándar sin no se me pide expresamente.

Y esta es y quiero que sea mi biblia.

Aunque sea un pensamiento simplista.

Saludos, jovenes
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Mas Información Sobre SQL Shell Bases de Datos 1 Domingo, 12 May 2013, 14:44 Ver último mensaje
shordi
No hay nuevos mensajes Sobre Iconos Estándar. shordi General 0 Viernes, 09 Enero 2015, 12:17 Ver último mensaje
shordi
No hay nuevos mensajes Sobre Gb.chart: Un Vacío De Información drjuano Controles/Librerías/Componentes 13 Jueves, 17 Septiembre 2015, 18:28 Ver último mensaje
Shell
No hay nuevos mensajes Información Sobre Los Componentes Shell Controles/Librerías/Componentes 3 Lunes, 21 Marzo 2016, 22:47 Ver último mensaje
jguardon
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No 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



  

 

cron