begin process at 2010 02 10 05:45:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

Format de dates et requêtes SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Format de dates et requêtes SQL

mardi 14 avril 2009 à 17:20:32 | Format de dates et requêtes SQL

PatBlarg

Bonjour, j'ai un gros problème des formats de date SQL Server 2005.

J'ai une colonne de type DATETIME dans laquelle je veux insérer des données.

Donc j'ai programmé quelque chose qui me sort la requête suivante :
INSERT INTO [dbo].[Logs] ([Date],[Valeur]) VALUES("2009-04-14 11:24:55","Connexion")
Mais je ne fais qu'avoir l'erreur suivante :
La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors limite de date et d'heure.
L'instruction a été arrêtée.


Mon système est configuré en Français(Canada) et le format de date serait celui-ci : YYYY-MM-DD . Lorsque je visualise les dates dans ma base de données SQL, elles sont dans le format YYYY-MM-DD HH:mm:ss. Cependant, dans ma requête SQL, le format de date semble être traité de la facon suivante : YYYY-DD-MM, et la, je ne comprend pas du tout pourquoi?

J'ai lu pas mal d'informations, mais en gros, ca dit d'utilise le format YYYY_MM-DD que j'utilise déjà, où bien d'utilisé des # au lieu de ' mais ça me sort un erreur comme quoi # n'est pas valide.
mardi 14 avril 2009 à 19:37:20 | Re : Format de dates et requêtes SQL

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Le SQL Server est-il sur la même machine que ton programme ?
Sinon, les OS des deux machines sont-ils dans la même langue ?

Côté administration de SQL Server, pour chaque User, tu précises la langue. Ces paramètres ne servent qu'à remettre en forme les dates en fonction de la langue, mais les dates sont de toute façon stockées sous forme US "mm/dd/yyyy".
Normalement, ce choix est sur "Default" et, je pense, tiens compte de l'OS pour se décider.

Lors de ta connexion, tu peux forcer la langue
Cet exemple m'a permis de gérer une connexion :
- FR quand je fait tourner mon appli sur la même machine que SQL Server, en FR
- US quand je fait tourner mon appli sur une autre machine (en US) que SQL Server
Ce code est utilisé dans une macro Word ou VB6. Il y aura surement des aménagements à prévoir pour .Net
Pour info, la fonction IsSqlServerLocal compare le nom de la machine locale avec celle déclarée dans ServerName.

    With cnnSqlServer
        ' Referme si déjà ouverte
        If .State <> adStateClosed Then .Close
        ' Paramétrage connexion
        .ConnectionTimeout = 25
        .Provider = "sqloledb"
        .Properties("Data Source").Value = ServerName
        .Properties("Initial Catalog").Value = DBName
        If IsSqlServerLocal(ServerName) Then
            ' SQL Server sur la même machine : Authentification Windows
            .Properties("Integrated Security").Value = "SSPI"
        Else
            ' SQL Server dédié
            .Properties("Locale Identifier").Value = 1033   ' Anglais
            .Properties("User ID").Value = cstUserID
            .Properties("Password").Value = cstPassword
        End If
        ' Connexion
        .Open
...
   End With

Essaye d'utiliser le code pays qui va bien pour toi.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mardi 14 avril 2009 à 19:41:07 | Re : Format de dates et requêtes SQL

jack

Administrateur CodeS-SourceS
PS : Avec SQL Server, dans tes requètes, pense à ajouter un N devant les valeurs de champs, exemple :
   Where monChamp = N'toto'
afin qu'il fasse la conversion unicode, si besoin
mercredi 15 avril 2009 à 11:32:14 | Re : Format de dates et requêtes SQL

Renfield

Administrateur CodeS-SourceS
borne la date avec des #

INSERT INTO [dbo].[Logs] ([Date],[Valeur]) VALUES(#2009-04-14 11:24:55#, "Connexion")
mercredi 15 avril 2009 à 14:18:08 | Re : Format de dates et requêtes SQL

PatBlarg

@ Jack : Merci pour la suggestion, j'essais d'en tirer quelque chose et je redonne des nouvelles.

@ Renfield : Retourne lire un peu, j'avais dit que mettre des # ne fonctionne pas. Si j'envoie la requête suivante :
INSERT INTO [dbo].[Logs] ([Date],[Valeur]) VALUES(#2009-04-14 11:24:55#, 'Connexion')

J'obtiens l'erreur suivante :
Le nom "#2009" n'est pas autorisé dans ce contexte. Les expressions valides sont des constantes, des expressions constantes et (dans certains contextes) des variables. Les noms de colonnes ne sont pas autorisés.
Par contre, si je met des ' au lieu des #, là sa passe. J'ai essayé au format YMD et YDM avec les #, mais aucun des deux ne passe.
mercredi 15 avril 2009 à 14:26:34 | Re : Format de dates et requêtes SQL

Renfield

Administrateur CodeS-SourceS
tu ne semble pas travailler en VB.Net, sans quoi les # auraient me semble t'il fonctionné.

où saisi tu cette requète ?
mercredi 15 avril 2009 à 14:32:22 | Re : Format de dates et requêtes SQL

PatBlarg

En fait, j'ai essayé dans VB.Net et dans le Microsoft SQL Server Management Studio. Aucunes différences.
mercredi 15 avril 2009 à 14:37:59 | Re : Format de dates et requêtes SQL

Renfield

Administrateur CodeS-SourceS
topic déplacé chez les spécialistes
mercredi 15 avril 2009 à 14:48:07 | Re : Format de dates et requêtes SQL

PatBlarg

Trop tard =3

L'exemple de Jack m'a orienté dans mes recherches et j'ai fais à peu près la même chose que lui.

J'ai ajouté "Current Language=us_english" à ma chaine de connexion et là, ça passe #1 avec les dates au format YMD. J'ai pas trop saisi l'importance de faire la différence entre un serveur local et un serveur distant, mais comme je travaille sur un "serveur distant" (sur une machine virtuelle, en attendant le vrai serveur..) je me suis pas trop cassé la tête.


Cette discussion est classée dans : date, sql, format, mm, yyyy


Répondre à ce message

Sujets en rapport avec ce message

Déclaration de variable avec format de date [ par Creat ] Bonjour,   J'aimerais savoir s'il est possible de déclarer une variable date avec un format bien précis.  Je m'explique, mon format de date est aaaa-M Requête SQL : date au format américain [ par Molenn ] Bonjour, J'ai longtemps hésité entre le forum VB et celui SQL ... J'espère avoir fait le bon choix Je pose vite fait mon problème :Une base SQL Server [SQL Server 2005] problème heure au format 12h [ par sdisp ] Bonjour.J'ai un soucis avec une requête sur un serveur SQL Serveur 2005 sous Windows 2003 Serveur US.Je m'explique, j'ai un champ de type datetime (ma Format Date et Heure [ par NICK123 ] Bonjour, mon problème est comment afficher une zone datetime comme date (DD/MM/YYYY) ou heure (HH:MM:SS) et pas DD/MM/YYYY HH:MM:SS Merci Format régionnal datetime [ par fabienfs ] Bonjour, Je viens d'installer SQL Server 2005 Standard édition sur mon seveur Windows 2003. Les paramètres régionnaux de Windows sont bien en françai sql server [ par mahamourta ] salut svp lorsque je fais une insertion dans une base de donnee sous sql server ,le format de la date est annee-mois-jour,alors que je veux un form sql server [ par mahamourta ] salutsvp lorsque je fais une insertion dans une base de donnee sous sql server, le format de la date est anee-mois-jours,alors que je veux un format j Connaitre la date de modification d'une table t-sql [ par Tolliap ] Bonjour, Ma question est simple, la solution peut-être pas : Est-il possible via une requête de savoir a quel date les données d'une table SQL ont é SQL MS Querry Faire une somme Par jour [ par enio29 ] bonjour à tous. Excusez moi par avance, je crain que pour ma première intervention le message soit mal placé... Alors j'ai des bases sur AS400 que j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales