Requête Sql pour insérer datetime de SQL Server
Je veux insérer un datetime
valeur dans une table SQL(Serveur) à l'aide de la requête sql ci-dessous
insert into table1(approvaldate)values(18-06-12 10:34:09 AM);
Mais j'obtiens cette Erreur msg. Incorrect syntax near '10'.
Je l'ai essayé avec les guillemets
insert into table1(approvaldate)values('18-06-12 10:34:09 AM');
J'obtiens ce message d'erreur Cannot convert varchar to datetime
Aide gentiment!
Merci.
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser les AAAAMMJJ sans équivoque détermination de la date dans SQL Server.
Si vous êtes marié à la
dd-mm-yy hh:mm:ss xm
format, vous aurez besoin d'utiliser CONVERTIR avec le style spécifique.5
ici est le style italien pour les dates. Eh bien, pas seulement les Italiens, mais c'est la culture c'est attribuée à Livres En Ligne.5
signifie?YYYYMMDD HH:MM:SS
(dans le format 24-heures - du monde format, n'importe qui, mais le NOUS l'utilise, et pas seulement les militaires....) sans les tirets - il fonctionne, même pourBritish
langue. Si vous utilisezYYYY-MM-DD HH:MM:SS
cependant, il échoue dans ce cas (avec les tirets), vous besoin pour séparer la date et l'heure avec unT
littérale.SET DATEFORMAT
de l'instruction. Ceci est le réglage pour une connexion individuelle, mais le paramètre peut être spécifié à l'échelle du serveur. Vous pouvez également spécifierSET LANGUAGE
pour le contrôle des choses comme le caractère qui est utilisé pour la base et le de telles, et le format de la date héritera de ce que (encore une fois, sur le serveur de connexion ou des niveaux). C'est juste que la valeur par défaut est l'anglais AMÉRICAIN, et mdy est le format AMÉRICAIN. ymd avec 4 dates d'année ne fonctionnent toujours, cependant.Plus indépendante de la langue de choix pour les littéraux de chaîne est la norme internationale ISO 8601 format "AAAA-MM-Jjthh:mm:ss". J'ai utilisé la requête SQL ci-dessous pour tester le format, et il ne fonctionne en effet dans tous les SQL langues dans sys.syslanguages:
Selon la Littéral de chaîne de Formats de Date et Heure l'article Microsoft TechNet, le standard ANSI SQL Standard de format de date AAAA-MM-JJ hh:mm:ss" est censé être "multi-langue". Cependant, l'utilisation de la même requête, le format ANSI ne fonctionne pas dans toutes les SQL langues.
Par exemple, en danois, vous aurez de nombreuses erreurs comme suit:
Si vous voulez construire une requête en C# pour s'exécuter sur le Serveur SQL server, et vous devez passer une date au format ISO 8601, utilisez le Sortable "s" spécificateur de format:
YYYYMMDD
pour la date uniquement, et soitYYYY-MM-DDThh:mm:ss
(avec des tirets, et oui, unT
entre la date et l'heure de la partie!) ouYYYYMMDD HH:MM:SS
(pas de tirets, pas de séparation littéral) pour être vraiment indépendante de la langue...Management studio crée des scripts comme:
vous devez l'ajouter comme
Pas besoin d'utiliser convertir. Tout simplement la liste comme une cité de la date au format ISO 8601.
Comme:
Le séparateur doit être un
/
et il a besoin d'être entouré par un seul'
citations.Si vous êtes le stockage de valeurs à l'aide du langage de programmation
Voici un exemple en C#
Pour stocker date vous devez le convertir en d'abord et ensuite le stocker
FooDate est de type datetime variable qui contient votre date dans le format de votre.
Je rencontre dans un cadre plus générique problème: arriver différent (et pas forcément connu) datetime formats et de les insérer dans une colonne datetime. Je l'ai résolu en utilisant cette déclaration, qui est finalement devenu une fonction scalaire (pertinentes pour ODBC canonique, américain, ANSI et britanniques\franch style de date - peut être étendu):