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 :

Nom de champ avec UNIX_TIMESTAMP


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Nom de champ avec UNIX_TIMESTAMP
    Bonjour,

    J'ai une date stockée dans le champ dateout_pub au format 2007-03-09 00:00:00
    Je cherche à la convertir en timestamp UNIX pour obtenir (par ex.) tous les enregistrements après le 1/1/2010.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM aun WHERE cust_email = '$sessionuser' AND UNIX_TIMESTAMP(dateout_pub) > 1263502344";
    Le souci est que le système ne prend pas en compte le contenu du champ, mais uniquement son nom "dateout_pub" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM aun WHERE cust_email = 'monmail@gmail.com' AND UNIX_TIMESTAMP(dateout_pub) > 1263502344
    ce qui ne donne évidemment rien de bon :-/

    Quelle syntaxe faut-il utiliser ?

    Bonne soirée et merci.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut zigzagbe.

    Que ce soit une colonne de type datetime ou que ce soit une chaîne de caractères avec comme contenu le format 'YY-MM-JJ HH:MM:SS', la fonction unix_timestamp() donne le même résultat à savoir un nombre compris entre 0 et 2.147.483.647, c'est-à-dire 2^31 - 1.
    Le zéro correspond à 1970-01-01 00:00:00 et le 2.147.483.647 correspond à 2038-01-19- 03:14:07.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    --------------
    select UNIX_TIMESTAMP('2010-01-01 00:00:00')
    --------------
     
    +---------------------------------------+
    | UNIX_TIMESTAMP('2010-01-01 00:00:00') |
    +---------------------------------------+
    |                            1262300400 |
    +---------------------------------------+
    Le nombre que vous indiqué 1263502344 correspond à la date du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    --------------
    select FROM_UNIXTIME(1263502344, '%Y-%m-%d %H:%i:%S')
    --------------
     
    +------------------------------------------------+
    | FROM_UNIXTIME(1263502344, '%Y-%m-%d %H:%i:%S') |
    +------------------------------------------------+
    | 2010-01-14 21:52:24                            |
    +------------------------------------------------+
    Dans votre message, vous indiquez le format "1/1/2010".
    Etes-vous certain de bien convertir votre date au bon format ?
    Sinon, vous devez la convertir, comme ci-après :
    Code : 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
    --------------
    select                str_to_date('1/1/2010 00:00:00', '%e/%c/%Y %H:%i:%s')
    --------------
     
    +-------------------------------------------------------+
    | str_to_date('1/1/2010 00:00:00', '%e/%c/%Y %H:%i:%s') |
    +-------------------------------------------------------+
    | 2010-01-01 00:00:00                                   |
    +-------------------------------------------------------+
    --------------
    select UNIX_TIMESTAMP(str_to_date('1/1/2010 00:00:00', '%e/%c/%Y %H:%i:%s'))
    --------------
     
    +-----------------------------------------------------------------------+
    | UNIX_TIMESTAMP(str_to_date('1/1/2010 00:00:00', '%e/%c/%Y %H:%i:%s')) |
    +-----------------------------------------------------------------------+
    |                                                            1262300400 |
    +-----------------------------------------------------------------------+
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Nom de champ avec espace en sortie de tmap
    Par lozeba dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 16/10/2015, 17h00
  2. Nom de champs avec des espaces
    Par Aggrg dans le forum Access
    Réponses: 21
    Dernier message: 20/07/2012, 17h32
  3. Générer des noms de champs avec des tableaux
    Par MV1908 dans le forum Zend_Form
    Réponses: 2
    Dernier message: 26/05/2008, 16h16
  4. Pb export des noms de champ avec # ds EXCEL
    Par 31Steph dans le forum Access
    Réponses: 1
    Dernier message: 29/06/2006, 08h13
  5. nom de champ avec TQuery
    Par gskoala dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/10/2004, 15h58

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