IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Fonctions date en SQLite


Sujet :

SQLite

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Par défaut Fonctions date en SQLite
    Bonjour,

    j'aimerais écrire l'équivalent de la ligne MySQL suivante en SQLite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEDIFF(CONCAT(YEAR(CURRENT_DATE), '-', MONTH(TMP.birthdate), '-', DAY(TMP.birthdate)), CURRENT_DATE)
    Mais je ne trouve pas l'équivalent des fonctions, que ce soit DATEDIFF ou même YEAR, MONTH ou DAY...

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Par défaut
    D'après la page http://www.sqlite.org/lang_datefunc.html je me suis dit que ma fonction se traduisait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strftime('%d', strftime('%Y', 'now') || strftime('-%m-%d', maDate)) - strftime('%d', 'now')
    Mais cela ne semble pas fonctionner, mais je n'arrive pas à savoir si le problème vient du SQLite en lui-même ou de mon code Java :/

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 452
    Par défaut
    Bonjour,

    En fait, les dates vues par SQLITE sont des chaînes de caractères au format DATE ISO (AAAA-MM-JJ HH:MN:SS.DDD).

    Il y a des quantités de fonctions sous SQLITE pour les manipuler (la plus facile à utiliser à mon sens est datetime avec ses modificateurs.

    J'ai cru comprendre que tu cherches le nombre des jours avant un anniversaire.

    Pour cela sous SQLITE tu peux essayer quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE [TestDates] (
    [Nom] TEXT NULL,
    [DateNais] DATE NULL);
     
    Insert into [TestDates] (Nom, DateNais) Values ('Moi', '2005-09-15'); 
     
    select round(julianday(substr(datetime('now'), 1, 4) || substr(DateNais, 5,6))
           - julianday(datetime('now')), 0) from testdates ;


    Résultat obtenu : 208 (pour le 19/02/2012)
    Cordialement.

Discussions similaires

  1. [Dates] Fonction date
    Par dafalri dans le forum Langage
    Réponses: 18
    Dernier message: 13/12/2005, 11h27
  2. Question de base sur l'utilisation de la fonction date()
    Par deaven dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/12/2005, 15h33
  3. Som dans form continu en fonction date selectionée dans form
    Par samlepiratepaddy dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2005, 13h05
  4. Fonction Date
    Par marivi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/08/2005, 16h30
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo