Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[SOLUCIONADO]  ¿Detectar fecha SQLite con tipo TEXT y con formato YYYY-MM-DD?
#1

Yo tengo una manera particular para detectar una fecha de SQLite donde se almacena en tipo TEXT y siguiendo este formato (aunque debo de confesar que para mi no es ni definitiva ni efectiva ni eficiente, por eso os propongo posibles código que den más calidad al mio):

YYYY-MM-DD
YYYY-MM-DD HH:MM

Pero cuando obtenemos un Result de este campo, procedente de SQLite que técnica se os ocurre para detectarla y diferenciarla por ejemplo de una cadena de texto donde esta tenga dos guiones por ejemplo o una forma parecida pero que no sea una fecha.

¿Me ayudan con códigos posibles?

Gracias.

===Solución ============================

Esta es mi propuesta que acabo de encontrar en la documentación de Gambas, creo que es bastante eficiente y solida, por favor, si creen que no pues indicadmelo

GAMBAS
  1. Dim sN As String = "[0123456789]"
  2. Dim sC1 As String = "2021-05-18"
  3. Dim sCaso1 As String = sN & sN & sN & sN & "-" & sN & sN & "-" & sN & sN
  4. Dim sC2 As String = "2021-05-18 10:30"
  5. Dim sCaso2 As String = sCaso1 & " " & sN & sN & ":" & sN & sN
  6.  
  7.  
  8. If sC1 Like sCaso1 Or sC2 Like sCaso2 Then
  9. Message.Info("Si")


    ¡Gracias!
#2

La parte
  Like "****-**-**"
también funciona así:
   Like "*-*-*"
Por lo tanto, tu solución no garantiza que aquella cadena sea una "fecha" (es decir una cadena compuesta por 4 números, un guión, 2 números, un guión y otros dos números).

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#3

Gracias guapo, pero ya que me tiras una piedra, ¿por qué no me das la solución? Tongue

En serio mil gracias, yo lo había dado por cerrado, Gambas es muy bueno, en serio, es un lenguaje de programación que nos deja dar rienda suelta a todo lo que nos de en gana, pero tengo tanto que aprender de el.

En fin, menos mal que existen personas como ustedes.

Nota: Para los futboleros la perdida de Maradona fue triste, pero ayer para mi Franco Battiato lo fue por igual. Descanse en paz.
-Centro di gravità permanente-
    ¡Gracias!
#4

(19-05-2021, 07:14)gambafeliz escribió:  Nota: Para los futboleros la perdida de Maradona fue triste, pero ayer para mi Franco Battiato lo fue por igual. Descanse en paz.
-Centro di gravità permanente-

Por lo que me attañe, de Maradona no me interesa nada de nada, de la muerte del gran siciliano Battiato, sì.


Que siempre viva el Hijo de la bellisima Diosa del Mediterraneo, Trinacria.
[Imagen: bandiera-trinacria.jpg]

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • gambafeliz
    ¡Gracias!
#5

(19-05-2021, 07:14)gambafeliz escribió:  no me das la solución

Una posibilidad podría ser:
GAMBAS
  1. Public Sub Main()
  2.  
  3.   Dim s As String = "2021-05-19"
  4.   Dim ss As String[]
  5.   
  6.   ss = Scan(s, "*-*-*")
  7.  
  8. ' En primer lugar, comprueba que el primer elemento corresponde al año actual y, a continuación,
  9. ' comprueba que la combinación de las partes numerales pueda ser una fecha.
  10.   If (ss[0] <> CStr(Year(Now))) Or (Not IsDate(ss[2] &/ ss[1] &/ ss[0])) Then Error.Raise("No es una fecha !")
  11.  


Por supuesto están otras opciones.

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#6

Lo dicho Smile

¡¡ Tengo tanto que aprender de Gambas !!

Me encanta tu código. Más Magia.

Tongue

Nota: Muchas gracias vuott me has dejado como en el cine, sentado apretando la espalda al respalda del asiento de un Cine de verano.
    ¡Gracias!
#7

" Più diventa tutto inutile
  e più credi che sia vero.
  E il giorno della fine

  non ti servirà l'inglese."

(Franco Battiato, "Il re del mondo", 1994)

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)