Comunidad Gambas-es

Versión completa: ¿Detectar fecha SQLite con tipo TEXT y con formato YYYY-MM-DD?
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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")


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).
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-
(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]
(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.
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.
" 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)