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

Développement SQL Server Discussion :

Modifier fomat date sous SQL server [2017]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut Modifier fomat date sous SQL server
    Bonjour,

    J'ai développé une base de données sous Access que j'ai ensuite migré sous sous SQL server 2017 sur notre serveur à l'aide du logiciel "SQL Server Migration Assistant for Access".

    Tout c'est bien passé sauf mon format "date" qui c'est transformé en "datetime2". Pas grave, j'ai pu le modifier avec une requête trouvé sur internet dans "Microsoft SQL Server Management Studio.

    Je lis et écrit dans cette base avec un fichier Access que j'ai lié à la base (mes formulaires et requêtes étant déjà fait sous Access). Cela fonctionne aussi.

    Il me reste juste un petit problème de présentation, sous SQL server la date est sous la forme aaaa-mm-jj et elle reste sous cette forme dans mes formulaires Access (à apriori pas moyen de le modifier à ce niveau) et je voudrais la mettre sous la forme jj/mm/aaaa directement sous SQL server.

    Est-ce possible? si oui comment faire?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Un type de données date (datetime2 et autre time) n'a pas de format en base de données, c'est à l'affichage de gérer ça.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut
    Mon problème est que sous Access je ne parviens pas à modifier l'affichage du format date sur un fichier lié, il semblerait qu'Access "se contente de relever les données" alors je me demandais si SQL server ne formatait pas ces données avant de les renvoyer...

    Excusez-moi si mes propos ne vous semble pas très pertinents mais comme vous l'aurez compris, les base SQL n'est pas une chose que je maitrise bien.

    En tout cas, merci de votre réponse.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut
    Bonjour, je relance la discussion car j'ai d'autres observations...

    En fait ce n'est effectivement pas le format datetime2 qui me pose problème mais le fait de lier Access a cette base SQL.

    Quand j'ai créer la base sous Access, je pouvais modifier à loisir les type de données dont les date et time.

    Quand j'ai migré la base vers SQL, comme je l'ai expliqué, les données se sont retrouvées sous le format datetime2.

    Maintenant quand je lie (du verbe lier) les table avec Access je n'ai plus la possibilité de modifier le format, en plus le format par défaut sous Access est Texte court...

    Quand je veux le modifier (quelque soit le format) j'ai le message d'erreur :"Opération non autorisée pour ce type d'action". Voir capture ci-après.

    Est-ce un bug de Access ou il y a un truc que je ne fait pas correctement?

    Nom : Capture.PNG
Affichages : 690
Taille : 19,6 Ko

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 961
    Par défaut
    Bonsoir,

    Citation Envoyé par CeluiQuiCherche Voir le message
    Mon problème est que sous Access je ne parviens pas à modifier l'affichage du format date sur un fichier lié, il semblerait qu'Access "se contente de relever les données" alors je me demandais si SQL server ne formatait pas ces données avant de les renvoyer...
    Access n'est pas qu'un moteur de base de données (table, requête et schéma de base de données) , c'est aussi un atelier de programmation avec des objets pour afficher correctement (formulaire et état) et des objets de "code" (macro et module)

    Si le type de la donnée de la table liée est bien "date/heure" alors vous pouvez décider d'afficher la valeur selon votre propre format dans les états (par exemple)

    Or sous Access il n'existe pas de type DATE et HEURE séparé.

    Le fait de le faire dans SQL serveur pose un problème à ACCESS lorsqu'on "lie" les tables.
    Il doit certainement les transformer en "texte court".
    Ce qui rend la saisie très compliquée.
    Sans parler des tris.

    Donc, si vous lier les tables :
    1- On ne peut changer la structure de la table du coté client (on peut lier des tables d'un fichier Access depuis un autre fichier Access - Split database)
    2- Il faut vérifier le type des colonnes tel que reconnu par Access
    3- Le format d'affichage ne sera pas hérité en fonction des préférences définies dans la table (vu qu'on ne peut la modifier)
    4- Faut se cogner le formatage pour chaque champ de formulaire et d'état

  7. #7
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut
    Bonjour, juste pour signaler que j'ai résolu mon problème sur le forum Access.

    https://www.developpez.net/forums/d2...e-access-liee/

    D'après ce que j'ai compris sur la page Microsoft dont je met le lien ci-après, le format datetime2 comporte un octet qui code la précision et donc ce format datetime2 ne semble pas être géré par Access.

    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    Merci à tous.

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 961
    Par défaut
    Bonsoir,

    Citation Envoyé par CeluiQuiCherche Voir le message
    Tout c'est bien passé sauf mon format "date" qui c'est transformé en "datetime2". Pas grave, j'ai pu le modifier avec une requête trouvé sur internet dans "Microsoft SQL Server Management Studio.
    Peut-on savoir en quel type vous l'avez changé ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut
    Bonjour,

    j'ai modifier le de type datetime2 en date pour les dates et en time pour les heures.

    Pour préciser mon problème d'origine, comme expliqué précédemment, à priori, quand je lie Access à une base SQL, je ne peux pas modifier mes formats d'affichage sur Access, ni sur l'affichage des tables ni sur les formulaires.

    Donc avec le format datetime2 j'ai des date sous cette forme: 2019-07-21 00:00:00

    Et des heures sous cette forme :1970-01-01 02:45:00 (avec toujours cette date par défaut).

    C'est pas top pour la lecture

    En modifiant le type datetime2 en date et time sur la base SQL, j'obtiens les affichage suivant sur Access:
    2019-07-21 pour les dates
    02:45:00.0000000 pour les heures.

    Pour la lecture, c'est un peu mieux pour les date mais pas pour les heures.

    J'aimerai avoir un affichage classique à la Française, soit:
    21-07-2019 ou 21/07/2019 pour les dates
    02:45:00 pour les heures

  10. #10
    Invité
    Invité(e)
    Par défaut
    C'est un problème d'affichage avec access que vous avez, pas grand chose à voir avec SQL Server.
    Vous devriez poser la question sur cette section du forum, il y aura sans doute plus de personnes à même de vous aider que celles qui passent ici

  11. #11
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Par défaut
    Oui, c'est ce que j'en avais déduis. Je reposerai effectivement la question dans le forum approprié mais suite à mes essais et recherche, je ne me fait guère d'illusion...

    Merci à tous.

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

Discussions similaires

  1. Date sous SQL Server
    Par foxrol dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/02/2011, 23h01
  2. Réponses: 6
    Dernier message: 01/09/2010, 12h50
  3. BETWEEN et Dates sous SQL Server 2005
    Par ZeProgrammator dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/02/2010, 11h15
  4. problème requète avec les dates sous sql server
    Par fayabones dans le forum Développement
    Réponses: 2
    Dernier message: 04/06/2009, 22h27
  5. Comparaison de Date sous SQL Server 2000
    Par faressam dans le forum Développement
    Réponses: 1
    Dernier message: 19/04/2008, 15h48

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