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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    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 635
    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 635
    Billets dans le blog
    10
    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 confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    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 confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    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
    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