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

Langage SQL Discussion :

equivalent à la fonction dateadd?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut equivalent à la fonction dateadd?
    bonjour,

    je cherche à soustraire un entier quelconque à une date formaté de cette manière: 2008-08-20.
    Il y a bien la fonction dateadd qui serait parfaite, mais apparement elle n'est dispo que sur sql server.
    Est ce qu'il existe une fonction equivalente pour une utilisation sur le moteur sql de phpmyadmin?

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    quel SGBD?
    si Mysql, regarde ici : http://dev.mysql.com/doc/refman/5.0/...functions.html

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut
    Oui c'est sur Mysql.
    Merci pour la liste de fonctions. Pas trouvé d'équivalent direct mais j'espère que ca va m'aider.
    Je post ma solution dès que j'ai trouvé.

  4. #4
    Membre éclairé Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Points : 807
    Points
    807
    Par défaut
    salut, dans le lien que te donne Cybher tu n'as pas trouvé ce que tu voulais faire???

    alors j'ai mal compris ce que tu voulais sinon regarde cela :

    lien

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut
    Ah le boulet, merci d'avoir relancé Z3phur, j'avais seulement lu les descriptions des fonctions. Pour addate() ca donne "Add dates" , bref c'est pas explicite donc j'avais pas été voir.
    ->Du coup j'avais trouvé un solution en php, que voici:
    requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     $query_type1 = 'SELECT ...
    FROM ...				
    WHERE incident
    BETWEEN " ' .  $date_debut  .  ' "  AND  " '. $this->date_courante_type1. ' "						
    GROUP BY ...
    HAVING recurrence > 6
    fonction php calculant la date de debut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function calcDate($date_courante){
    	$date = new DateTime($this->date_courante_type1);
    	$date->modify('-'.$this->periodicite_type1. ' day'); /*on soustrait à la date_courante un nombre de jours définit*/
    	return $date->format("o-m-d");
    	}
    ->Sinon en sql c'est plus court et plus simple comme je le voulais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query_type1 = 'SELECT ...
    FROM ...				
    WHERE incident
    BETWEEN ADDDATE(\''.$this->date_courante_type1 .'\', -2) AND "' . $this->date_courante_type1 . '"
    GROUP BY ...
    HAVING recurrence > 6
    Merci beaucoup!

  6. #6
    Membre éclairé Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Points : 807
    Points
    807
    Par défaut
    De rien,

    n'oublie pas le TAG résolu si tout est bon pour toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Equivalence à la fonction chop() en Perl
    Par samjung dans le forum Langage
    Réponses: 9
    Dernier message: 11/04/2006, 15h41
  2. Equivalent a fonction DATEDIFF pour MySQL version 3.23
    Par npze dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/10/2005, 11h18
  3. problème avec la fonction DATEADD
    Par Nico56 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/07/2005, 11h49
  4. [cr8.5] paramètres de la fonction DateAdd ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2005, 11h57
  5. fonction DATEADD [SQL SERVER]
    Par HULK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/12/2004, 17h33

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