Problèmes de datetime SQL Server. Américain vs. Britannique?
Sur mon test DB, les dates sont affichées dans un JJ/MM/AAAA. Affichés, je veux dire quand vous faites un clic droit, ouvrir la table dans Management Studio, les données renvoyées sont affichés dans un JJ/MM/AAAA.
Drôle, c'est quand j'écris T-SQL pour extraire des enregistrements, j'ai à l'entrée d'une MM/JJ/AAAA pour récupérer les bonnes données. Est-il de toute façon je peux aligner un JJ/MM/AAAA format?
source d'informationauteur super9
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser DÉFINIR LA LANGUE à choisir le format de date que SQL Server attend dans les requêtes (je pense management studio ordinateur client utilise les paramètres régionaux à des fins d'affichage, pas sûr cependant). Cependant, je suggère la transmission de valeurs à l'aide des paramètres au lieu de les incorporer dans l'instruction de la requête. Vous ne rencontrerez pas des problèmes si vous utilisez des paramètres. Tout est pris en charge.
Pour changer la langue par défaut du serveur d':
Personnellement, je toujours utilisation AAAA-MM-JJ (ou AAAAMMJJ) puisqu'il n'est pas spécifiques à une culture, et, eh bien, je suppose qu'il fait appel à moi parce que c'est "logique" (surtout lorsqu'il est suivi par un temps).
[Edit: je suis juste de parler de ce que j'ai mis dans mes scripts SQL pour assurer la compatibilité indépendamment des paramètres du serveur, pas ce que SQL Server "affiche"]
Vous pouvez définir la langue par défaut pour chaque individu Connexion SQL Server. Ne me souviens pas, mais quelque chose comme ceci:
Si vous passez dans DATETIME au format
par exemple
il n'y a aucune ambiguïté autour de mois et de la date et, par conséquent, vous ne devriez jamais avoir un problème
Dans presque tous les cas, la bonne façon de résoudre ce problème est tout simplement de ne jamais traiter de la date sous forme de chaîne. Si vous passez un paramètre, ou de l'utilisation de l' (dactylographié) la valeur de la colonne, puis le serveur de texte de conversion n'est tout simplement pas un facteur. En plus d'éviter la i18n problème, ce qui réduit également l'injection de la surface d'attaque. Et cela permet de gagner quelques cycles CPU, aussi ;-p
Si vous utilisez
EXEC
pour SQL dynamique, alors cela devrait également être paramétré viasp_ExecuteSQL
.J'essaie d'utiliser ODBC forme canonique d'une date dans la mesure du possible
{d 'aaaa-mm-jj'}
De cette façon, je sais comment sql server va l'interpréter.
Il fonctionne en TSQL l'amende juste.
Soit l'ajouter à votre site web.fichier de configuration:
ou vous pouvez ajouter cette instruction sur la page:
Espérons que cette aide.