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

PHP & Base de données Discussion :

Comment faire requete sur un champ TIMESTAMP


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Comment faire requete sur un champ TIMESTAMP
    A partir de ma table nommée « donnees », je veux insérer automatique dans ma table nommée « actuel » issues de ma table « donnees ». Seulement, je veux que la table « actuel » soit remplie de données du jour uniquement. C’est à que la table « actuel » se vide à chaque insertion et se rempli uniquement de données datant du même jour. C’est les données de la dernière mise à jour. Je veux savoir comment faire une requête sur le champ TIMESTAMP "`tsModif` timestamp NOT NULL default '0000-00-00 00:00:00'," afin de récupérer toutes données ajoutées le même jour.

    Aidez moi je ne sais comment le faire je suis débutant. Voici la structure de mes deux tables.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE TABLE `donnees` (
    `_id` int(11) NOT NULL auto_increment,
    `idu` int(11) NOT NULL default '0',
    `_motcle` text NOT NULL,
    `codeentreprise` varchar(150) NOT NULL default '',
    `mois` varchar(150) NOT NULL default '',
    `prixAchat` varchar(150) NOT NULL default '',
    `_dateremise` text NOT NULL,
    `codeplanteur` varchar(150) NOT NULL default '',
    `nbrelevement` varchar(150) NOT NULL default '',
    `modepaiement` varchar(150) NOT NULL default '',
    `netpayer` varchar(150) NOT NULL default '',
    `poidstotaleleve` varchar(150) NOT NULL default '',
    `tsModif` timestamp NOT NULL default '0000-00-00 00:00:00',
    PRIMARY KEY (`_id`),
    KEY `idu` (`idu`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=90 ;
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    CREATE TABLE `actuel` (
    `_id` int(11) NOT NULL auto_increment,
    `idu` int(11) NOT NULL default '0',
    `_motcle` text NOT NULL,
    `codeentreprise` varchar(150) NOT NULL default '',
    `mois` varchar(150) NOT NULL default '',
    `prixAchat` varchar(150) NOT NULL default '',
    `_dateremise` text NOT NULL,
    `codeplanteur` varchar(150) NOT NULL default '',
    `nbrelevement` varchar(150) NOT NULL default '',
    `modepaiement` varchar(150) NOT NULL default '',
    `netpayer` varchar(150) NOT NULL default '',
    `poidstotaleleve` varchar(150) NOT NULL default '',
    `tsModif` timestamp NOT NULL default '0000-00-00 00:00:00',
    PRIMARY KEY (`_id`),
    KEY `idu` (`idu`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Bonjour,

    Au sein de mysql tu disposes d'un certain nombre de fonctions de manipulation de dates.

    Par exemple, tu pourrais utiliser :

    FROM_UNIXTIME
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Si j'ai bien compris : c'est bien plus simple que cela car ici il n'est pas question de timestamp unix : une simple comparaison du champ avec la date courante suffira.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM `donnees` WHERE DATE(`tsModif`) = CURDATE();
    -- sinon, pour le transfert, il y a moyen de le faire directement avec une requête de ce genre :
    INSERT INTO `actuel` SELECT * FROM `donnees` WHERE DATE(`tsModif`) = CURDATE();

    Mais quel intérêt de "copier" les données si on peut justement effectuer directement cette sélection ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut
    ou alors faire un insert sur les 2 tables, et faire un delete toutes les nuits de la table actuel pour n'avoir que les données du jour....

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 464
    Points : 4 646
    Points
    4 646
    Par défaut
    Citation Envoyé par VooDooNet Voir le message
    ou alors faire un insert sur les 2 tables, et faire un delete toutes les nuits de la table actuel pour n'avoir que les données du jour....
    je crois que tu voulais parler des view non ?
    dev.mysql.com/doc/refman/5.0/fr/create-view.html
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. pb Requete sur un champ pas sur l'objet
    Par Meunier dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/09/2006, 14h24
  2. [Derby] Requete date courante sur un champ Timestamp
    Par spekal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2006, 10h54
  3. Requete sur un champ reference
    Par kirty dans le forum Bases de données
    Réponses: 8
    Dernier message: 05/08/2006, 16h11
  4. Optimisation d'une requete sur un champ texte
    Par TARMINE dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/06/2006, 13h41
  5. requete sur un champs text
    Par sam01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2006, 13h41

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