Définition et redéfinition de la DATEFORMAT dans sql server 2005
Est-il un moyen d'interroger le courant DATEFORMAT SQLServer 2005 est actuellement à l'aide de T-SQL?
J'ai une application qui lit les préfabriqués INSÉREZ-les déclarations et les exécute à l'encontre d'une base de données. Afin de rendre les données à insérer la culture indépendante-je stocker datetime-valeurs représentées dans l'invariant de la culture (jour/mois/année...) . Le serveur de base de données peut s'exécuter sous des endroits différents, en fonction de la langue du système (peut-être à l'aide de jour/mois/année) , afin que l'insertion peut se bloquer car la date ne peut pas être analysé.
Je sais qu'il y a du "JEU de LANGAGE" et "SET DATEFORMAT" états en T-SQL pour définir les paramètres régionaux à utiliser.
Je ne veux pas faire ces modifications permanentes (sont-ils permanents?), donc, je suis à la recherche d'une façon de lire le DATEFORMAT à partir de la DB, les stocker, modifier le format de mon goût et de le remettre à la valeur stockée après que les données ont été insérées.
Des idées où trouver de la valeur dans le serveur?
Vous devez vous connecter pour publier un commentaire.
Définir la Langue et Set DateFormat seulement atteinte à la session en cours. Si vous vous Déconnectez de la base de données et se connecter à nouveau, la langue et Dateformat sont remis à leurs valeurs par défaut.
Il y a un "truc" que vous pouvez utiliser pour déterminer si le DateFormat est m/d/y, ou d/m/y.
Cette date est valable dans les deux sens. C'est Jan 2, ou 1 Fev. Si cette requête renvoie un 1, alors vous avez MDY. Si elle renvoie un 2, vous avez DMY.
L'instruction suivante va effectuer une date d'opération d'analyse en utilisant un format de date (le @dateFormat variable), puis de l'activer à nouveau l'original de format de date.
Noter que le format de la date modifications s'appliquent uniquement à la connexion en cours. Re permettant l'original de format de date n'est effectuée pour s'assurer que plus tard instructions exécutées sur la même connexion ne sont pas affectés par ce changement.
Ce sujet de la date_ format de colonne dans sys.dm_ exec_sessions?
Vous pouvez toujours consulter votre propre session donc pas de serveur niveau des droits de l'seraient nécessaires
Si elle n'est pas trop tard soumettre vos dates que AAAAMMJJ à SQL Server et ils vont toujours être insérée correctement indépendamment de DMY ou MDY dateformat paramètres
SET DATEFORMAT est pas permanent. Dans mon expérience, il affecte cette connexion particulière. Certaines personnes disent session seulement, mais j'ai découvert que si la connexion est retourné à la piscine et réutilisés avant qu'il est perdu, alors il conserve la dateformat est défini par un utilisateur précédent.
J'ai trouvé un moyen d'obtenir ce dans un tableau de l'utilisateur options d'ailleurs, et il a transformé, pour obtenir l'dateformat. Il peut être utile à d'autres (note leur sont divers autres paramètres dans le même tableau, de sorte que vous pourriez vérifier si ansi_nulls sont définies et diverses autres choses de la même manière):