Je souhaite insérer une datetime
valeur dans une table (SQL Server) à l'aide de la requête SQL ci-dessous
insert into table1(approvaldate)values(18-06-12 10:34:09 AM);
Mais j'obtiens ce msg d'erreur. Incorrect syntax near '10'.
Je l'ai essayé avec les citations
insert into table1(approvaldate)values('18-06-12 10:34:09 AM');
Je reçois ce message d'erreur Cannot convert varchar to datetime
Aide aimablement! Merci.
5
signifie?YYYYMMDD HH:MM:SS
(au format 24 heures - le format mondial, tout le monde sauf les États-Unis l'utilise, pas seulement l'armée ...) sans les tirets - cela fonctionne, même pour laBritish
langue. Si vous utilisezYYYY-MM-DD HH:MM:SS
cependant, cela échoue - dans ce cas (avec les tirets), vous devez séparer la date et l'heure par unT
littéral.SET DATEFORMAT
déclaration . Il s'agit du paramètre pour une connexion individuelle, mais le paramètre peut être spécifié à l'échelle du serveur. Vous pouvez également spécifierSET LANGUAGE
pour contrôler des choses comme quel caractère est utilisé pour la base et autres, et le format de date héritera de cela (encore une fois, au niveau du serveur ou de la connexion). C'est juste que la valeur par défaut est l'anglais américain et mdy est le format américain. ymd avec des dates de 4 ans fonctionne toujours, cependant.Un choix plus indépendant de la langue pour les chaînes littérales est le format ISO 8601 standard international "AAAA-MM-JJThh: mm: ss". J'ai utilisé la requête SQL ci-dessous pour tester le format, et cela fonctionne effectivement dans tous les langages SQL de sys.syslanguages :
Selon les formats de date et d'heure littéraux de chaîne section dans Microsoft TechNet, le format de date standard ANSI standard SQL "AAAA-MM-JJ hh: mm: ss" est censé être "multilingue". Cependant, en utilisant la même requête, le format ANSI ne fonctionne pas dans tous les langages SQL.
Par exemple, en danois, vous rencontrerez de nombreuses erreurs comme les suivantes:
Si vous souhaitez créer une requête en C # à exécuter sur SQL Server et que vous devez transmettre une date au format ISO 8601, utilisez le spécificateur de format triable "s" :
la source
YYYYMMDD
pour la date, et soitYYYY-MM-DDThh:mm:ss
(avec des tirets, et oui, une partieT
entre la date et l'heure!) OuYYYYMMDD HH:MM:SS
(pas de tirets, pas de littéral de séparation) pour être vraiment indépendant de la langue ...Management Studio crée des scripts comme:
la source
vous devez l'ajouter comme
la source
Pas besoin d'utiliser convert. Indiquez-la simplement comme une date citée au format ISO 8601.
Ainsi:
Le séparateur doit être un
/
et il doit être entouré de'
guillemets simples .la source
Si vous stockez des valeurs via n'importe quel langage de programmation
Voici un exemple en C #
Pour stocker la date, vous devez d'abord la convertir, puis la stocker
FooDate est une variable datetime qui contient votre date dans votre format.
la source
Je rencontre un problème plus générique: obtenir des formats datetime différents (et pas nécessairement connus) et les insérer dans la colonne datetime. Je l'ai résolu en utilisant cette instruction, qui est finalement devenue une fonction scalaire (pertinente pour le style de date ODBC canonique, américain, ANSI et britannique \ franch - peut être étendue):
la source