Je suis surpris de ne pas pouvoir trouver cette question ici déjà.
J'ai une variable de date et d'heure et je souhaite la convertir en une chaîne afin de pouvoir l'ajouter à une autre chaîne. Je le veux dans un format qui peut être facilement converti en une date et heure.
Comment puis-je faire ceci?
(Je veux la partie date et la partie heure.)
sql-server
tsql
cja
la source
la source
Convert
, double-cliquez pour mettre en surbrillance, appuyez sur Maj + F1 ... toujours première ligne de défense.Réponses:
La requête suivante obtiendra la date / heure actuelle et la convertira en chaîne. au format suivant
yyyy-mm-dd hh:mm:ss(24h)
la source
DateTimeOffSet
, assurez-vous d'ajuster lavarchar
longueur à ce à quoi vous voulez que votre résultat ressemble. Pour moi, je ne voulais pas le fuseau horaire donc j'ai dû utiliserSELECT convert(varchar(19), sysdatetimeoffset(), 120)
Il existe de nombreuses façons différentes de passer de
convert
adatetime
à une chaîne. Voici une façon:Voir la démo
Voici un site Web qui contient une liste de toutes les conversions:
Comment formater la date et l'heure dans SQL Server
la source
Vous pouvez utiliser l'
convert
instruction dans Microsoft SQL Server pour convertir une date en chaîne. Un exemple de la syntaxe utilisée serait:Ce qui précède renverrait la date et l'heure actuelles dans une chaîne au format
YYYY-MM-DD HH:MM:SS
24 heures.Vous pouvez remplacer le nombre à la fin de l'instruction par l'un des nombreux qui modifieront le format des chaînes renvoyées. Une liste de ces codes peut être trouvée sur le MSDN dans la section de référence CAST and CONVERT .
la source
Il existe 3 méthodes différentes en fonction de mes besoins et de la version que j'utilise.
Voici les méthodes.
1) Utilisation de Convert
2) Utilisation de Cast (SQL Server 2008 et au-delà)
3) Utilisation du type de données caractère de longueur fixe
la source
En plus des fonctions
CAST
etCONVERT
des réponses précédentes, si vous utilisez SQL Server 2012 et versions ultérieures, vous utilisez la fonction FORMAT pour convertir unDATETIME
type basé en chaîne.Pour reconvertir, utilisez la
PARSE
ou lesTRYPARSE
fonctions opposées .Les styles de mise en forme sont basés sur .NET (similaire aux options de mise en forme de chaîne de la méthode ToString ()) et présentent l'avantage de tenir compte de la culture. par exemple.
Résultats:
la source
The format argument must contain a valid .NET Framework format string, either as a standard format string (for example, "C" or "D"), or as a pattern of custom characters for dates and numeric values (for example, "MMMM DD, yyyy (dddd)")
Use the FORMAT function for locale-aware formatting of date/time and number values as strings. For general data type conversions, use CAST or CONVERT.
Vérifiez la syntaxe CAST et CONVERT de t-sql:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
la source
101 - US - MM / JJ / AAAA
108 - Heure - HH: MI: SS
112 - Date - AAAAMMJJ
121 - ODBC - AAAA-MM-JJ HH: MI: SS.FFF
20 - ODBC - AAAA-MM-JJ HH: MI: SS
la source
Beaucoup de gens ont répondu à cette question, mais je pense que la solution la plus simple a été laissée de côté.
SQL SERVER (je crois que son 2012+) a des équivalents de chaîne implicites pour DATETIME2 comme indiqué ici
Regardez la section sur «Formats de littéraux de chaîne pris en charge pour datetime2»
Pour répondre explicitement à la question des OP:
production:
Remarque: La première variable (
myVar
) contient également la valeur'2019-01-23 12:24:00.0000000'
. Il est simplement formaté enJan 23 2019 12:24PM
raison du formatage par défaut défini pour SQL SERVER qui est appelé lorsque vous utilisezPRINT
. Ne vous laissez pas trébucher ici par cela, la chaîne réelle dans(myVer)
='2019-01-23 12:24:00.0000000'
la source
Essayez ci-dessous:
la source