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 :

SQL datetime mettre les secondes à "00"


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 75
    Points
    75
    Par défaut SQL datetime mettre les secondes à "00"
    Bonjour

    J'ai une table avec un champ datetime et j'aimerais mettre les secondes à zéro dans toute la colonne.
    Vu qu'il y a pas mal de lignes, je cherche la méthode la plus efficace (donc qui ne fera pas exploser la BDD en temps de calcul).

    Exemple: je voudrais que:
    2015-01-08 06:26:13
    devienne:
    2015-01-08 06:26:00

    J'ai vu la fonction DATEADD mais je n'ai pas réussi.
    J'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE table_test
    DATEADD (second , -SECOND(heure_debut) , heure_debut)
    Quelqu'un aurait-il une solution?

    Merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 291
    Points : 39 553
    Points
    39 553
    Billets dans le blog
    9
    Par défaut
    Pas mal de lignes c'est vague
    Si on parle de quelques dizaines de milliers et sous réserve que l'heure ne participe à aucun index (sait on jamais....) des fonctions de colonne (substring ou autre) sont tout à fait acceptables
    S'il s'agit de plusieurs dizaines de millions de lignes ou au delà, alors unload + reformatage + reload est la meilleure stratégie

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 75
    Points
    75
    Par défaut
    Haha, on ,'a pas les mêmes proportions. Je parlais plutôt d'environ 20 000 lignes donc moins que ce que tu penses.
    Et il n'y a pas d'index dessus.

    Mettons que je fasse un SQL substr: comment ajouter les 00 ? car le substr va juste supprimer mes secondes, non ?

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 75
    Points
    75
    Par défaut
    Trouvé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE for_data_row  SET r_heure_debut = DATE_FORMAT( r_heure_debut, '%d-%m-%y %h:%i:' )
    Merci à vous

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Notez que vous n'étiez pas loin de la solution avec votre requete initiale, il fallait juste utiliser DATEPART (vous semblez sous SQL Server...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE table_test
    SET heure_debut = DATEADD (second , -DATEPART(SECOND,heure_debut) , heure_debut)

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

Discussions similaires

  1. [AJAX] requete SQl update toutes les secondes
    Par ech0s dans le forum AJAX
    Réponses: 0
    Dernier message: 05/06/2012, 17h59
  2. SQL Compact Edition & datetime avec les secondes
    Par slacky dans le forum Développement
    Réponses: 4
    Dernier message: 15/09/2011, 14h49
  3. [SQL][DateTime] Formater les dates en SQL
    Par Husqvarna dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/11/2004, 21h36

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