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

Requêtes MySQL Discussion :

SELECT HOUR ()


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut SELECT HOUR ()
    Salut tout le monde,

    On va me prendre pour un fou du calcul mais voilà.

    Je cherche à mutliplier une valeur TIME de ma table par 700.
    Etant donné les conseils qu'on a pu me donner auparavant sur de forum (concernant l'addition d'horaire par exemple), j'ai testé pas à pas mes requetes dans phpMyAdmin.

    Ainsi, j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT HOUR('02:00:00')
    qui marche très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE pilotes SET salaire = (2 * 700) WHERE callsign = 'SKT050'
    qui marche aussi très bien.

    Cependant, quand je veux remplacer 02:00:00 par la valeur de ma table, je fais mais ça me renvoit la réponse NULL.
    Et quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT HOUR ('heures FROM pilotes WHERE callsign = SKT050"')
    ça me renvoit 0 alors que j'ai une valeur TIME 14:00:00 et que ça devrait me renvoyer 14...

    Bizarre...

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut Re: SELECT HOUR ()
    'heures' -> désigne une chaine de caractères, et non la colonne heures.

    J'ai pas très bien compris pourquoi tu veux multiplier les heures par 700, mais sache que le type TIME a une limite (aux environs de 900 heures je crois) et que tu t'en approches dangereusement... Peux-tu expliquer plus précisément ce que tu cherches à faire, stp? (pourquoi par 700 et pas un autre chiffre?)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Tres simple, le site que je gere est un site de jeu. La valeur TIME désigne le nombre d'heures que les joueurs ont passé sur le réseau. 700 est le nombre de crédit qu'ils gagnent par heures passées sur le réseau.

    A la suite de ce que j'ai expliqué plus haut, quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE pilotes SET salaire = (('SELECT heures FROM pilotes WHERE callsign = "SKT050"') * 700) WHERE callsign = 'SKT050'
    la valeur retournée est donc 0.

    Si 'heures' désigne une chaine de caractères, et non la colonne heures, comment puis-je faire pour récupérer la valeur TIME se trouvant dans la colonne heures ?
    Pour ce qui est des limites du type TIME, la valeur 700 peut toujours etre changée au pire

    Merci pour votre aide

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par jemflight
    Si 'heures' désigne une chaine de caractères, et non la colonne heures, comment puis-je faire pour récupérer la valeur TIME se trouvant dans la colonne heures ?
    Essaye ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 700 * HOUR(heures)
    FROM pilotes
    WHERE callsign = "SKT050"'
    Et après, débrouille-toi un peu tout seul (pas à pas).

    J'ai l'impression que tu ne maîtrise pas bien la syntaxe du SQL, va faire un tour ici: 13.2.7. SELECT Syntax
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J'avais déjà essayé un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE pilotes SET salaire = ((heures)*(700))
    mais ça ne marche pas.
    Je n'aurais pas posé cette question sinon

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Tu brules des étapes si tu passes directement d'un SELECT à un UPDATE ! Pas à pas, j'ai dit ! (en plus on ne multiplie pas un TIME par un INT... )
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    on mulitplie un TIME par un INT en faisant SELECT HOUR (monchamp) * X

    Le probleme c'est que je veux saboir si 'monchamp' peut etre remplacer par le nom de ma colonne où se trouve cette valeur. Car moi je n'y arrive pas

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [VB6] [Crystal] Selection enregistrement
    Par littlecow dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/01/2005, 13h08
  3. SELECT
    Par Thomad dans le forum SQL
    Réponses: 2
    Dernier message: 13/03/2003, 20h56
  4. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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