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

MS SQL Server Discussion :

Problème avec fonction getdate() [2000]


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut Problème avec fonction getdate()
    Bonjour,

    J'ai une table qui a une colonne en default getdate sur sql server 2000.

    Cette colonne se remplie avec le format entier de getime() et je veux faire un UPDATE de cette dernière pour ne garder que le mois et l'année sous format année-mois (yyyy-mm).

    J'ai utilisé la fonction replace mais sans succès.

    Avez-vous une idée SVP ?

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    J'ai trouvé la bonne requête mais elle ne fonctionne pas en UPDATE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE table SET date_insert = SUBSTRING(CONVERT(VARCHAR(10),GETDATE(),101), 1, 10)
    Elle me donne l'erreur suivante :

    La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.

  3. #3
    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,

    Vous ne l'avez pas précisé, mais visiblement votre colonne est de type DATETIME. Ce type contient une date et une heure, et vous ne pouvez y stocker des dates "partielles"

    Expliquez nous pourquoi vous voulez tronquer cette date, afin que l'on puisse vous indiquer des solutions.

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Oui exactement ma colonne est de type datetime.

    Je veux la tranquer pour faire une insertion à partir de cette table avec seulement l'année et le mois.

    J'ai crée au début la colonne en format VARCHAR avec default getDate() mais la colonne était remplis par un format qui ne me convient pas (18 fév 2013.....)

  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
    ok, mais que faites vous de cette données ensuite, en quoi cela vous gène qu'elle contienne un jour précis et une heure.


    Au format DATETIME, vous pouvez "arrondir" au premier jour du mois, à minuit par exemple...

    Mais la solution technique dépend du besoin derrière :
    affichage ? filtrage ? regroupement ??

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    C'est une table d'historisation sur laquelle je travaille puis après je devrait insérer certaines lignes à partir de cette table au dépend de leur date d’insertion (date_insert) et qui dois correspondre uniquement au mois et à l'année.

    Vous voyez ?

    EDIT:

    Je viens de trouver une solution. J'ai recrée la table avec le type VARCHAR puis j'ai appliqué ma requête de conversion et j'ai eu le résultat qui me convient

    Merci pour votre aide.

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

Discussions similaires

  1. Problème avec fonctions et string/char
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 08/04/2006, 16h54
  2. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  3. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  4. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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