{"id":1680,"date":"2024-03-09T10:32:21","date_gmt":"2024-03-09T09:32:21","guid":{"rendered":"https:\/\/sql.marcus-belz.de\/?p=1680"},"modified":"2024-03-10T11:24:20","modified_gmt":"2024-03-10T10:24:20","slug":"datenqualitat-konvertierung-nach-date-datetime-datetime2-time","status":"publish","type":"post","link":"https:\/\/sql.marcus-belz.de\/?p=1680","title":{"rendered":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Inhalt<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#AnchorOverview\">\u00dcberblick<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorStyleCode\">style-Codes<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorFormatStrings\">Formatbezeichner<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorUserDefinedFunctions\">Benutzerdefinierte Funktionen<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorSummary\">Zusammenfassung<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorRelatedPosts\">Verwandte Artikel<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorOverview\">\u00dcberblick<\/h1>\n\n\n\n<p>Die wohl herausforderndste Konvertierung ist die Konvertierung eines Datums und\/oder Uhrzeit, das oder die als Text geliefert wird, in einen Wert vom Typ <em>date<\/em>, <em>time<\/em>, <em>datetime<\/em> oder <em>datetime2<\/em>.<\/p>\n\n\n\n<p><em>SQL&nbsp;Server <\/em>stellt f\u00fcr die Speicherung eines Datums und\/oder einer Uhrzeit unter anderem die folgenden Datentypen zur Verf\u00fcgung:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>date<\/em><\/li>\n\n\n\n<li><em>time<\/em><\/li>\n\n\n\n<li><em>datetime<\/em><\/li>\n\n\n\n<li><em>datetime2<\/em><\/li>\n<\/ul>\n\n\n\n<p>F\u00fcr die Konvertierung eines als Text gelieferten Datums stehen die Funktionen <strong>CONVERT<\/strong> und <a href=\"https:\/\/learn.microsoft.com\/de-de\/sql\/t-sql\/functions\/try-convert-transact-sql?view=sql-server-ver16\"><strong>TRY_CONVERT<\/strong><\/a> Standardfunktionen bereit, die \u00fcber den Parameter <em>style<\/em> das jeweilige Datumsformat des gelieferten Datums identifizieren. So gibt zum Beispiel der <em>style<\/em>-Parameter <em>104<\/em> an, dass das zu konvertierende Datum in dem Parameter <em>expression<\/em> ein Deutsches Datum mit vierstelliger Jahreszahl gem\u00e4\u00df der Formatierungszeichenfolge <em>dd.mm.yyyy<\/em> ist.<\/p>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code>&nbsp;1: TRY_CONVERT(date, \u201924.04.2023\u2019, 104) -- &gt; 24.04.2023<\/code><\/pre>\n\n\n\n<p>Die unterst\u00fctzten Datumsformate sind in der Online-Dokumentation unter <em><a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/cast-and-convert-transact-sql?view=sql-server-ver16#date-and-time-styles\">CAST&nbsp;and&nbsp;CONVERT&nbsp;(Transact-SQL)<\/a><\/em> beschrieben. Jedem Datumsformat ist ein <em>style<\/em>-Code zugewiesen, der als dritter Parameter an die Funktion <strong>TRY_CONVERT<\/strong> aber auch <strong><em>CONVERT<\/em><\/strong> \u00fcbergeben wird und damit die Interpretation des Datums steuert. Die Codes sind in dem Abschnitt <a href=\"#style-Code\">sytle-Codes<\/a> aufgef\u00fchrt.<\/p>\n\n\n\n<p>Dar\u00fcber hinaus kennt <em>SQL&nbsp;Server<\/em> weitere Formatzeichenfolgen bzw. die Definition von Formatbezeichnern, die von der Funktion <strong>FORMAT<\/strong> inter\u00adpretiert werden k\u00f6nnen, um ein Datum oder auch Zahl in einen Text entsprechend der angegebenen Formatzeichen\u00adfolge zu formatieren. So wird das Datum <em>24.04.2023&nbsp;12:34:15.123<\/em> gem\u00e4\u00df der Formatzeichenfolge <em>yyyyMMddhhmmssfff<\/em> in den Text <em>20230418123415123<\/em> \u00fcbersetzt.<\/p>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code>&nbsp;1: FORMAT(TRY_CONVERT(datetime, N'24.04.2023 12:34:15.123', 104), 'yyyyMMddhhmmssfff')\n&nbsp;2: -- &gt; 20230418123415123<\/code><\/pre>\n\n\n\n<p>Weitere Informationen zu den benutzer\u00addefinierten Formatzeichen\u00adfol\u00adgen finden sich in dem Abschnitt <a href=\"#AnchorFormatStrings\">Formatbezeichner<\/a>.<\/p>\n\n\n\n<p>Umgekehrt kennt <em>SQL&nbsp;Server<\/em> leider keine Konvertierungsfunktion, die ein Datum\/Uhrzeit, das als Text entsprechend einer Format\u00adzeichenfolge \u2013 wie im vorigen Abschnitt beschrieben \u2013 vorliegt, interpretiert. F\u00fcr die Konver\u00adtierung eines Datums, das als Text gem\u00e4\u00df einer Format\u00adzeichen\u00adfolge \u00fcbergeben wird, sind daher benutzerdefinierte gespeicherte Funktionen zu entwickeln. Dieser Artikel stellt vier benutzerdefinierte gespeicher\u00adte Funktionen f\u00fcr die Konvertierung eines Eingangswertes in die Datentypen <em>date<\/em>, <em>time<\/em>, <em>datetime<\/em> oder <em>datetime2<\/em> vor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#AnchorfnConvertDate\">[dbo].[fnConvertDate]<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorfnConvertTime\">[dbo].[fnConvertTime]<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorfnConvertDateTime\">[dbo].[fnConvertDateTime]<\/a><\/li>\n\n\n\n<li><a href=\"#AnchorfnConvertDateTime2\">[dbo].[fnConvertDateTime2]<\/a><\/li>\n<\/ul>\n\n\n\n<p>Der Code dieser Funktionen findet sich in dem Abschnitt <a href=\"#AnchorUserDefinedFunctions\">Benutzerdefinierte Funktionen<\/a> f\u00fcr die Konvertierung eines Datums.<\/p>\n\n\n\n<p>Das R\u00fcckgabeergebnis h\u00e4ngt in erster Linie von dem Zieldatentyp ab, da dieser den Wertebereich eines Datums und bei Zeitangaben die Genauigkeit festgelegt. W\u00e4hrend <em>SQL&nbsp;Server<\/em> bei den Datentypen <em>date<\/em> und <em>datetime<\/em> einen Wertbereich von <em>01.01.1753 <\/em>bis <em>31.12.9999 <\/em>und der Datentyp <em>datetime2<\/em> einen Wertbereich von <em>01.01.0001 <\/em>bis <em>31.12.9999 <\/em>unterst\u00fctzt, unterst\u00fctzen zum Beispiel die Datenbanksysteme <em>Oracle<\/em> und <em>MySQL<\/em> mit den Datentypen <em>DATE<\/em>, <em>DATETIME<\/em> und <em>TIMESTAMP<\/em> den Wertebereich <em>01.01.0000 <\/em>bis <em>31.12.9999<\/em>. Enth\u00e4lt das Datum auch eine Uhrzeit, ist die Genauigkeit in Sekundenbruchteilen, mit der eine Uhrzeit zu speichern ist, zu ber\u00fccksichtigen. Die Oracle-Datentypen <em>DATETIME<\/em> und <em>TIMESTAMP<\/em> unterst\u00fctzen generell die Speicherung von Sekundenbruchteilen mit 7 Nachkommastellen. In <em>SQL&nbsp;Server<\/em> unterst\u00fctzen die Datentypen <em>datetime2<\/em> und <em>time<\/em> die Speicherung von 7 Nachkommastellen, w\u00e4hrend der Datentyp <em>datetime<\/em> nur 3 Nachkommastellen unterst\u00fctzt.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorStyleCode\">style-Codes<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\" colspan=\"2\"><strong>Style<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" colspan=\"3\"><strong>Wertebereich<\/strong><strong><\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>yy<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>yyyy<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Land\/Beschreibung<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" colspan=\"2\"><strong>Formatzeichenfolge<\/strong><strong><\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>&#8211;<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>0<\/strong> oder <strong>100<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Default f\u00fcr <em>datetime<\/em> und <em>smalldatetime<\/em><\/td><td class=\"has-text-align-left\" data-align=\"left\">&nbsp;<\/td><td class=\"has-text-align-left\" data-align=\"left\">mon dd yyyy hh:miAM<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>1<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>101<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">United States<\/td><td class=\"has-text-align-left\" data-align=\"left\">1 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">mm\/dd\/yy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">101 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">mm\/dd\/yyyy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>2<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>102<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">ANSI<\/td><td class=\"has-text-align-left\" data-align=\"left\">2 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">yy.mm.dd<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">102 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">yyyy.mm.dd<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>3<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>103<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">England\/Frankreich<\/td><td class=\"has-text-align-left\" data-align=\"left\">3 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">dd\/mm\/yy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">103 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">dd\/mm\/yyyy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>4<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>104<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">Deutschland<\/td><td class=\"has-text-align-left\" data-align=\"left\">4 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">dd.mm.yy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">104 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">dd.mm.yyyy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>10<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>110<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">United States<\/td><td class=\"has-text-align-left\" data-align=\"left\">10 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">mm-dd-yy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">110 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">mm-dd-yyyy<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>12<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>112<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">ISO<\/td><td class=\"has-text-align-left\" data-align=\"left\">12 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">yymmdd<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">112 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">yyyymmdd<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>13<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\"><strong>113<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\" rowspan=\"2\">Europa (Default)<br>inklusive Zeit mit Millisekunden<\/td><td class=\"has-text-align-left\" data-align=\"left\">13 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">dd mon yyyy hh:mi:ss:mmm<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">113 =<\/td><td class=\"has-text-align-left\" data-align=\"left\">(24 Stunden)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorFormatStrings\">Formatbezeichner<\/h1>\n\n\n\n<p>F\u00fcr die textliche Darstellung eines Datums stellt Microsoft einen Satz an Formatbezeichnern zur Verf\u00fcgung. Ein Auszug der wichtigsten Bezeichner findet sich in der folgenden Tabelle:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Formatbezeichner<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Beschreibung<\/strong><strong><\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>d<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der Tag des Monats, von 1 bis 31.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>dd<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der Tag des Monats, von 01 bis 31.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>ddd<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der abgek\u00fcrzte Name des Tags der Woche.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>dddd<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der vollst\u00e4ndige Name des Wochentags.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>f<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Zehntelsekunde in einem Datums- und Uhrzeitwert.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>ff<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Hundertstelsekunde in einem Datums- und Uhrzeitwert.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>fff<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Millisekunden in einem Datums- und Uhrzeitwert.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>h<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Stunde, von 1 bis 12 (12-Stunden-Format).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>hh<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Stunde, von 01 bis 12 (12-Stunden-Format).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>H<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Stunde, von 0 bis 23 (24-Stunden-Format).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>HH<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Stunde, von 00 bis 23 (24-Stunden-Format).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>m<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Minute, von 0 bis&nbsp;59.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>mm<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Minute, von 00 bis&nbsp;59.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>M<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der Monat, von 1 bis&nbsp;12.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>MM<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Der Monat, von 01 bis&nbsp;12.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>s<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Sekunde, von 0 bis&nbsp;59.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>ss<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Die Sekunde, von 00 bis&nbsp;59.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>yy<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Das Jahr, von 00 bis 99.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>yyyy<\/strong><strong><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Das Jahr als vierstellige Zahl.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorUserDefinedFunctions\">Benutzerdefinierte Funktionen<\/h1>\n\n\n\n<p>Die Implementierungen der Konvertierungs-Funktionen erwarten in dem Parameter <strong>p_Date<\/strong> ein Datum, das als Text \u00fcbergeben wird. Der Parameter <strong>p_DateStyle<\/strong> gibt eine benutzerdefinierte Formatzeichenfolge oder einen der oben genannten <em>style<\/em>-Parameter an. Die unterst\u00fctzten Formatzeichenfolgen und <em>style<\/em>-Codes sind dem Code zu entnehmen. Die erwarteten Formatzeichenfolgen entsprechen nicht exakt den Formatbezeichnern, wie sie in dem Abschnitt <a href=\"#AnchorFormatStrings\">Formatbezeichner<\/a> angegeben sind. Wie oben bereits erw\u00e4hnt, ist Microsoft in der Definition der Formatzeichenfolgen und Formatbezeichner inkonsequent. Die benutzerdefinierten gespeicherten Funktionen gehen mit diesem Umstand prag\u00admatisch um und interpretieren Formatzeichenfolgen nicht, sondern sie \u00fcbersetzen sie in den zugeh\u00f6rigen <em>style<\/em>-Parameter oder die Formatierungs\u00adzeichenfolge wird konkret abgefragt und implementiert. Formatzeichen\u00adfolgen werden <em>Case Insensitive<\/em> behandelt.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-cyan-bluish-gray-background-color has-background\">Die nachfolgenden Code-Beispiele zeigen nicht alle \u00dcbersetzungen der Formatzeichenfolgen in den zugeh\u00f6rigen <em>style<\/em>-Parameter. Fehlende \u00dcbersetzungen sind durch die Zeichenfolge [&#8230;] ersetzt. Bei Verwendung dieser Funktionen ist diese Zeichenfolge durch entsprechende \u00dcbersetzungen zu ersetzen.<\/p>\n<\/div><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deklaration<\/h2>\n\n\n\n<p>Die Deklaration der benutzerdefinierten gespeicherten Funktionenkann allgemein wie folgt angegeben werden:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p>Konvertiert einen \u00fcbergebenen Eingangswert in den Zieldatentyp <em>date<\/em>, <em>time<\/em>, <em>date\u00adtime<\/em> oder <em>datetime2<\/em>. Kann der Eingangswert nicht umgewandelt werden, wird <em>NULL<\/em> zur\u00fcckgegeben. Der \u00fcbergebene Wert wird Case Insensitive behandelt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Syntax<\/h3>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code>&nbsp;1: &#91;dbo].&#91;fnConvertDate] (@p_Date AS nvarchar(50), @p_DateStyle nvarchar(50))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Argumente<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>p_Date<br><\/strong>Gibt den umzuwandelnden Eingangswert an.<\/li>\n\n\n\n<li><strong>p_DateStyle<br><\/strong>Gibt eine Formatzeichenfolge an, gem\u00e4\u00df der ein Datum in <strong>p_Date<\/strong> \u00fcbergeben wird, oder einen <em>style<\/em>-Code. Die Formatzeichenfolge oder der <em>style<\/em>-Parameter steuern die Umwandlung des Datums. Die unterst\u00fctzten Formatzeichenfolgen und <em>style<\/em>-Codes sind dem Code zu entnehmen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">R\u00fcckgabe<\/h3>\n\n\n\n<p>Gibt den umgewandelten Wert als Wert vom Typ <em>date<\/em>, <em>time<\/em>, <em>date\u00adtime<\/em> oder <em>datetime2<\/em> zur\u00fcck, wenn die Umwandlung erfolgreich ist. Kann der Eingangswert nicht umgewandelt werden, wird <em>NULL<\/em> zur\u00fcckgegeben. Wird <em>NULL<\/em> oder ein leerer String \u00fcbergeben, gibt die Funktion <em>NULL<\/em> zur\u00fcck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"AnchorfnConvertDate\">[dbo].[fnConvertDate]<\/h2>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code> 1: CREATE FUNCTION &#91;dbo].&#91;fnConvertDate] (@p_Date AS nvarchar(50), @p_DateStyle nvarchar(50))\n 2: RETURNS date\n 3: AS\n 4: BEGIN\n 5:    -- --------------------------------------------------------------------------------\n 6:    -- Declare variables\n 7:    -- --------------------------------------------------------------------------------\n 8:    DECLARE @returnValue       AS date;\n 9: \n10:    SET @p_DateStyle = LOWER(@p_DateStyle);\n11: \n12:    -- --------------------------------------------------------------------------------\n13:    -- Workload\n14:    -- --------------------------------------------------------------------------------\n15:    IF &#91;dbo].&#91;fnIsNullOrEmpty](@p_Date, 1) = 1\n16:       BEGIN\n17:          SET @returnValue = NULL;\n18:       END\n19:    ELSE IF @p_DateStyle IN (   \n20:                                N'yyyy-mm-dd'                   , N'23'\n21:                               ,N'mon dd yyyy hh:miam'          , N'100'\n22:                               ,N'mm\/dd\/yyyy'                   , N'101'\n23:                               ,N'yyyy.mm.dd'                   , N'102'\n24:                               ,&#91;...]\n25:                            )                                            \n26:       BEGIN\n27:          SET @returnValue = CASE\n28:                                WHEN @p_DateStyle IN (N'yyyy-mm-dd'         , N'23' ) \n29:                                   THEN TRY_CONVERT(date, @p_Date,  23)\n30:                                WHEN @p_DateStyle IN (N'mon dd yyyy hh:miam', N'100') \n31:                                   THEN TRY_CONVERT(date, @p_Date, 100)\n32:                                WHEN @p_DateStyle IN (N'mm\/dd\/yyyy'         , N'101') \n33:                                   THEN TRY_CONVERT(date, @p_Date, 101)\n34:                                WHEN @p_DateStyle IN (N'yyyy.mm.dd'         , N'102') \n35:                                   THEN TRY_CONVERT(date, @p_Date, 102)\n36:                                WHEN @p_DateStyle IN (N'dd\/mm\/yyyy'         , N'103') \n37:                                   THEN TRY_CONVERT(date, @p_Date, 103)\n38:                                &#91;...]\n39:                             END;\n40:       END\n41:    ELSE \n42:       BEGIN\n43:          SET @returnValue = NULL;\n44:       END;\n45: \n46:    RETURN @returnValue;\n47: END;\n <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"AnchorfnConvertTime\">[dbo].[fnConvertTime]<\/h2>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code> 1: CREATE FUNCTION &#91;dbo].&#91;fnConvertTime](@p_Time AS nvarchar(50), @p_TimeStyle nvarchar(50))\n 2: RETURNS time(7)\n 3: AS\n 4: BEGIN\n 5:    -- --------------------------------------------------------------------------------\n 6:    -- Declare variables\n 7:    -- --------------------------------------------------------------------------------\n 8:    DECLARE @returnValue       AS time;\n 9: \n10:    -- --------------------------------------------------------------------------------\n11:    -- Initialize variables\n12:    -- --------------------------------------------------------------------------------\n13:    SET @p_TimeStyle = LOWER(@p_TimeStyle)\n14: \n15:    -- --------------------------------------------------------------------------------\n16:    -- Workload\n17:    -- --------------------------------------------------------------------------------\n18:    IF &#91;dbo].&#91;fnIsNullOrEmpty](@p_Time, 1) = 1\n19:       BEGIN\n20:          SET @returnValue = NULL;\n21:       END\n22:    ELSE IF @p_TimeStyle IN ( N'yyyymmddhhmmss'\n23:                             ,N'yyyymmddhhmmssf'\n24:                             ,N'yyyymmddhhmmssff'\n25:                             ,&#91;...]\n26:                             ,N'yyyymmddhhmmssfffffff')\n27:       BEGIN \n28:          SET @returnValue = TRY_CONVERT( time(7)                        -- 202304181011121234567\n29:                                         ,SUBSTRING(@p_Time, 1, 4)+'-'+  -- 2023\n30:                                          SUBSTRING(@p_Time, 5, 2)+'-'+  -- 04\n31:                                          SUBSTRING(@p_Time, 7, 2)+' '+  -- 18\n32:                                          SUBSTRING(@p_Time, 9, 2)+':'+  -- 10\n33:                                          SUBSTRING(@p_Time,11, 2)+':'+  -- 11\n34:                                          SUBSTRING(@p_Time,13, 2)+'.'+  -- 12\n35:                                          SUBSTRING(@p_Time,15, 7)       -- 1234567\n36:                                         ,120\n37:                                        ) \n38:       END\n39:    ELSE IF @p_TimeStyle IN ( N'hhmmss'\n40:                             ,N'hhmmssf'\n41:                             ,N'hhmmssff'\n42:                             ,N'hhmmssfff'\n43:                             ,&#91;...]\n44:                             ,N'hhmmssfffffff')\n45:       BEGIN \n46:          SET @returnValue = TRY_CONVERT( time(7)                        -- 1011121234567\n47:                                         ,SUBSTRING(@p_Time, 1, 2)+':'+  -- 10\n48:                                          SUBSTRING(@p_Time, 3, 2)+':'+  -- 11\n49:                                          SUBSTRING(@p_Time, 5, 2)+'.'+  -- 12\n50:                                          SUBSTRING(@p_Time, 7, 7)       -- 1234567\n51:                                         ,120\n52:                                        ) \n53:       END\n54:    ELSE IF @p_TimeStyle IN (   \n55:                                N'mon dd yyyy hh:miam'          , N'100' \n56:                               ,N'mm\/dd\/yyyy'                   , N'101' \n57:                               ,N'yyyy.mm.dd'                   , N'102' \n58:                               ,N'dd\/mm\/yyyy'                   , N'103' \n59:                               ,&#91;...]\n60:                            )\n61:       BEGIN\n62:          SET @returnValue = CASE\n63:                                WHEN @p_TimeStyle IN (N'yyyy.mm.dd'                , N'102') \n64:                                   THEN TRY_CONVERT(time(7), @p_Time, 102) \n65:                                WHEN @p_TimeStyle IN (N'yyyy-mm-dd hh:mi:ss'       , N'120')\n66:                                   THEN TRY_CONVERT(time(7), @p_Time, 120) \n67:                                WHEN @p_TimeStyle IN (N'yyyy-mm-dd hh:mi:ss.mmm'   , N'121')\n68:                                   THEN TRY_CONVERT(time(7), @p_Time, 121) \n69:                                WHEN @p_TimeStyle IN (N'yyyy-mm-ddthh:mi:ss.mmm'   , N'126')\n70:                                   THEN TRY_CONVERT(time(7), @p_Time, 126) \n71:                                &#91;...]\n72:                             END;\n73:       END\n74:    ELSE \n75:       BEGIN\n76:          SET @returnValue = NULL;\n77:       END;\n78: \n79:    RETURN @returnValue;\n80: END;\n <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"AnchorfnConvertDateTime\">[dbo].[fnConvertDateTime]<\/h2>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code> 1: CREATE FUNCTION &#91;dbo].&#91;fnConvertDateTime] \n    (\n        @p_date      AS nvarchar(50)\n       ,@p_dateStyle AS nvarchar(50)\n    )\n 2: RETURNS datetime\n 3: AS\n 4: BEGIN\n 5:    -- --------------------------------------------------------------------------------\n 6:    -- Declare variables\n 7:    -- --------------------------------------------------------------------------------\n 8:    DECLARE @returnValue       AS datetime;\n 9: \n10:    -- --------------------------------------------------------------------------------\n11:    -- Initialize variables\n12:    -- --------------------------------------------------------------------------------\n13:    SET @p_dateStyle = LOWER(@p_dateStyle);\n14: \n15:    -- --------------------------------------------------------------------------------\n16:    -- Workload\n17:    -- --------------------------------------------------------------------------------\n18:    IF &#91;dbo].&#91;fnIsNullOrEmpty](@p_Date, 1) = 1\n19:       BEGIN\n20:          SET @returnValue = NULL;\n21:       END\n22:    ELSE IF @p_dateStyle IN (  N'yyyymmddhhmmss'\n                                , N'yyyymmddhhmmssf'\n                                , N'yyyymmddhhmmssff'\n                                , N'yyyymmddhhmmssfff'\n                               )\n23:       BEGIN \n24:          SET @returnValue = TRY_CONVERT(datetime2                      -- 20230418101112123\n25:                                        ,SUBSTRING(@p_date, 1, 4)+'-'+  -- 2023\n26:                                         SUBSTRING(@p_date, 5, 2)+'-'+  -- 04\n27:                                         SUBSTRING(@p_date, 7, 2)+' '+  -- 18\n28:                                         SUBSTRING(@p_date, 9, 2)+':'+  -- 10\n29:                                         SUBSTRING(@p_date,11, 2)+':'+  -- 11\n30:                                         SUBSTRING(@p_date,13, 2)+'.'+  -- 12\n31:                                         SUBSTRING(@p_date,15, 3)       -- 123\n32:                                        ,120\n33:                                        ) \n34:       END\n35:    ELSE IF @p_dateStyle = N'yyyymmdd_hhmissmmm'\n36:       BEGIN \n37:          SET @returnValue = TRY_CONVERT(datetime \n38:                                        ,SUBSTRING(@p_date, 1, 4)+'-'+\n39:                                         SUBSTRING(@p_date, 5, 2)+'-'+\n40:                                         SUBSTRING(@p_date, 7, 2)+' '+\n41:                                         SUBSTRING(@p_date,10, 2)+':'+\n42:                                         SUBSTRING(@p_date,12, 2)+':'+\n43:                                         SUBSTRING(@p_date,14, 2)+'.'+\n44:                                         SUBSTRING(@p_date,16, 3)\n45:                                        ,121\n46:                                        ) \n47:       END\n48:    ELSE IF @p_dateStyle IN (   \n49:                                N'yyyy-mm-dd'         , N'23'\n50:                               ,N'mon dd yyyy hh:miam', N'100'\n51:                               ,N'mm\/dd\/yyyy'         , N'101'\n52:                               ,N'yyyy.mm.dd'         , N'102'\n53:                               ,&#91;...]\n54:                          )\n55:       BEGIN\n56:          SET @returnValue = CASE\n57:                                WHEN @p_dateStyle IN (N'yyyy-mm-dd'         , N'23' ) \n58:                                   THEN TRY_CONVERT(datetime, @p_date,  23)\n59:                                WHEN @p_dateStyle IN (N'mon dd yyyy hh:miam', N'100') \n60:                                   THEN TRY_CONVERT(datetime, @p_date, 100)\n61:                                WHEN @p_dateStyle IN (N'mm\/dd\/yyyy'         , N'101') \n62:                                   THEN TRY_CONVERT(datetime, @p_date, 101)\n63:                                WHEN @p_dateStyle IN (N'yyyy.mm.dd'         , N'102') \n64:                                   THEN TRY_CONVERT(datetime, @p_date, 102)\n65:                                &#91;...]\n66:                             END;\n67:       END\n68:    ELSE \n69:       BEGIN\n70:          SET @returnValue = NULL;\n71:       END;\n72: \n73:    RETURN @returnValue;\n74: END;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"AnchorfnConvertDateTime2\">[dbo].[fnConvertDateTime2]<\/h2>\n\n\n\n<pre class=\"wp-block-code has-background\" style=\"background-color:#eeeeee\"><code> 1: CREATE FUNCTION &#91;dbo].&#91;fnConvertDateTime2] (@p_date AS nvarchar(50), @p_dateStyle nvarchar(50))\n 2: RETURNS datetime2(7)\n 3: AS\n 4: BEGIN\n 5:    -- --------------------------------------------------------------------------------\n 6:    -- Declare variables\n 7:    -- --------------------------------------------------------------------------------\n 8:    DECLARE @returnValue       AS datetime2(7);\n 9: \n10:    -- --------------------------------------------------------------------------------\n11:    -- Initialize variables\n12:    -- --------------------------------------------------------------------------------\n13:    SET @p_dateStyle = LOWER(@p_dateStyle)\n14: \n15:    -- --------------------------------------------------------------------------------\n16:    -- Workload\n17:    -- --------------------------------------------------------------------------------\n18:    IF &#91;dbo].&#91;fnIsNullOrEmpty](@p_Date, 1) = 1\n19:       BEGIN\n20:          SET @returnValue = NULL;\n21:       END\n22:    ELSE IF @p_dateStyle IN ( N'yyyymmddhhmmss'\n23:                             ,N'yyyymmddhhmmssf'\n24:                             ,N'yyyymmddhhmmssff'\n25:                             ,&#91;...]\n26:                             ,N'yyyymmddhhmmssfffffff')\n27:       BEGIN \n28:          SET @returnValue = TRY_CONVERT( datetime2  -- 202304181011121234567\n29:                                         ,SUBSTRING(@p_date, 1, 4)+'-'+  -- 2023\n30:                                          SUBSTRING(@p_date, 5, 2)+'-'+  -- 04\n31:                                          SUBSTRING(@p_date, 7, 2)+' '+  -- 18\n32:                                          SUBSTRING(@p_date, 9, 2)+':'+  -- 10\n33:                                          SUBSTRING(@p_date,11, 2)+':'+  -- 11\n34:                                          SUBSTRING(@p_date,13, 2)+'.'+  -- 12\n35:                                          SUBSTRING(@p_date,15, 7)       -- 1234567\n36:                                         ,120\n37:                                        ) \n38:       END\n39:    ELSE IF @p_dateStyle = N'yyyymmdd_hhmissmmm'\n40:       BEGIN \n41:          SET @returnValue = TRY_CONVERT( datetime2(7) \n42:                                         ,SUBSTRING(@p_date, 1, 4)+'-'+\n43:                                          SUBSTRING(@p_date, 5, 2)+'-'+\n44:                                          SUBSTRING(@p_date, 7, 2)+' '+\n45:                                          SUBSTRING(@p_date,10, 2)+':'+\n46:                                          SUBSTRING(@p_date,12, 2)+':'+\n47:                                          SUBSTRING(@p_date,14, 2)+'.'+\n48:                                          SUBSTRING(@p_date,16, 3)\n49:                                         ,121\n50:                                        ) \n51:       END\n52:    ELSE IF @p_dateStyle IN (   \n53:                              N'mon dd yyyy hh:miam'          , N'100'\n54:                             ,N'mm\/dd\/yyyy'                   , N'101'\n55:                             ,N'yyyy.mm.dd'                   , N'102'\n56:                             ,N'dd\/mm\/yyyy'                   , N'103'\n57:                             ,&#91;...]\n58:                            )\n59:       BEGIN\n60:          SET @returnValue = CASE\n61:                                WHEN @p_dateStyle IN (N'yyyy.mm.dd'         , N'102') \n62:                                   THEN TRY_CONVERT(datetime2(7), @p_date, 102) \n63:                                WHEN @p_dateStyle IN (N'yyyy\/mm\/dd'         , N'111') \n64:                                   THEN TRY_CONVERT(datetime2(7), @p_date, 111) \n65:                                WHEN @p_dateStyle IN (N'yyyymmdd'           , N'112') \n66:                                   THEN TRY_CONVERT(datetime2(7), @p_date, 112) \n67:                                WHEN @p_dateStyle IN (N'mon dd yyyy hh:miam', N'100') \n68:                                   THEN TRY_CONVERT(datetime2(7), @p_date, 100) \n69:                             END;\n70:       END\n71:    ELSE \n72:       BEGIN\n73:          SET @returnValue = NULL;\n74:       END;\n75: \n76:    RETURN @returnValue;\n77: END;\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorSummary\">Zusammenfassung<\/h1>\n\n\n\n<p><em>SQL Server <\/em>unterst\u00fctzt bei der Konvertierung eines Textes in ein Datum nur die unter <em><a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/cast-and-convert-transact-sql?view=sql-server-ver16#date-and-time-styles\">CAST&nbsp;and&nbsp;CONVERT&nbsp;(Transact-SQLL)<\/a><\/em> dokumentierten Datumsformate und weist den dort aufgelisteten Formaten einen <em>style<\/em>-Code zu. <\/p>\n\n\n\n<p>Wenn Daten aus Quellsystemen \u00fcber eine Text-Datei (CSV, XML, JSON) geliefert werden, muss unbedingt gekl\u00e4rt werden, in welchem Format ein Datum geliefert wird.  Existiert zu einem Datumsformat kein <em>style<\/em>-Code, ist eine benutzerdefinierte Funktion zu entwickeln, die die Konvertierung durchf\u00fchrt.<\/p>\n\n\n\n<p>Dieser Artikel stellt 4 Funktionen vor, die ein Datum in die folgenden Datentypen konvertiert: <em>date<\/em>, <em>time<\/em>, <em>datetime<\/em> oder <em>datetime2<\/em>. Die Funktionen \u00fcbersetzen eine zu \u00fcbergebende Formatzeichenfolge in einen style-Code und konvertieren das ebenfalls \u00fcbergebene Datum in den jeweiligen Zieldatentyp.<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"AnchorRelatedPosts\">Verwandte Artikel<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a data-type=\"post\" data-id=\"1246\" href=\"https:\/\/sql.marcus-belz.de\/?p=1246\">Datenqualit\u00e4t in einem ETL-Prozess<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1181\" data-type=\"post\" data-id=\"1181\">Datenqualit\u00e4t \/\/ Grundlagen der Typ-Konvertierung mit T-SQL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach bigint, int, smallint, tinyint<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1547\"><\/a><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach decimal oder numeric<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1580\"><\/a><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach money, smallmoney<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1629\"><\/a><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach float, real<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1656\"><\/a><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach bit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sql.marcus-belz.de\/?p=1680\"><\/a><a href=\"https:\/\/sql.marcus-belz.de\/?p=1534\">TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Inhalt \u00dcberblick Die wohl herausforderndste Konvertierung ist die Konvertierung eines Datums und\/oder Uhrzeit, das oder die als Text geliefert wird, in einen Wert vom Typ date, time, datetime oder datetime2. SQL&nbsp;Server stellt f\u00fcr die Speicherung eines Datums und\/oder einer Uhrzeit <a href=\"https:\/\/sql.marcus-belz.de\/?p=1680\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[47,45,39,35],"class_list":["post-1680","post","type-post","status-publish","format-standard","hentry","category-all-languages","category-german","tag-data-type","tag-datenqualitat","tag-design-pattern","tag-try_convert"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog<\/title>\n<meta name=\"description\" content=\"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sql.marcus-belz.de\/?p=1733\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog\" \/>\n<meta property=\"og:description\" content=\"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sql.marcus-belz.de\/?p=1733\" \/>\n<meta property=\"og:site_name\" content=\"Just another SQL blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-09T09:32:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-10T10:24:20+00:00\" \/>\n<meta name=\"author\" content=\"marcus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"marcus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1733#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1680\"},\"author\":{\"name\":\"marcus\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\"},\"headline\":\"TRY_CONVERT \\\/\\\/ Konvertierung nach date, datetime, datetime2, time\",\"datePublished\":\"2024-03-09T09:32:21+00:00\",\"dateModified\":\"2024-03-10T10:24:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1680\"},\"wordCount\":1167,\"keywords\":[\"Data type\",\"Datenqualit\u00e4t\",\"Design Pattern\",\"TRY_CONVERT\"],\"articleSection\":[\"All Languages\",\"German\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1680\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1733\",\"name\":\"TRY_CONVERT \\\/\\\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#website\"},\"datePublished\":\"2024-03-09T09:32:21+00:00\",\"dateModified\":\"2024-03-10T10:24:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\"},\"description\":\"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1733#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1733\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=1733#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sql.marcus-belz.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TRY_CONVERT \\\/\\\/ Konvertierung nach date, datetime, datetime2, time\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#website\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/\",\"name\":\"Just another SQL blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\",\"name\":\"marcus\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog","description":"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sql.marcus-belz.de\/?p=1733","og_locale":"de_DE","og_type":"article","og_title":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog","og_description":"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.","og_url":"https:\/\/sql.marcus-belz.de\/?p=1733","og_site_name":"Just another SQL blog","article_published_time":"2024-03-09T09:32:21+00:00","article_modified_time":"2024-03-10T10:24:20+00:00","author":"marcus","twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"marcus","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/sql.marcus-belz.de\/?p=1733#article","isPartOf":{"@id":"https:\/\/sql.marcus-belz.de\/?p=1680"},"author":{"name":"marcus","@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744"},"headline":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time","datePublished":"2024-03-09T09:32:21+00:00","dateModified":"2024-03-10T10:24:20+00:00","mainEntityOfPage":{"@id":"https:\/\/sql.marcus-belz.de\/?p=1680"},"wordCount":1167,"keywords":["Data type","Datenqualit\u00e4t","Design Pattern","TRY_CONVERT"],"articleSection":["All Languages","German"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/sql.marcus-belz.de\/?p=1680","url":"https:\/\/sql.marcus-belz.de\/?p=1733","name":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time - Just another SQL blog","isPartOf":{"@id":"https:\/\/sql.marcus-belz.de\/#website"},"datePublished":"2024-03-09T09:32:21+00:00","dateModified":"2024-03-10T10:24:20+00:00","author":{"@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744"},"description":"This article describes the safe ype conversion in SQL Server of texts into the data types date, datetime, datetime2 and time analogous to the TRY_CONVERT function.","breadcrumb":{"@id":"https:\/\/sql.marcus-belz.de\/?p=1733#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sql.marcus-belz.de\/?p=1733"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sql.marcus-belz.de\/?p=1733#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sql.marcus-belz.de\/"},{"@type":"ListItem","position":2,"name":"TRY_CONVERT \/\/ Konvertierung nach date, datetime, datetime2, time"}]},{"@type":"WebSite","@id":"https:\/\/sql.marcus-belz.de\/#website","url":"https:\/\/sql.marcus-belz.de\/","name":"Just another SQL blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sql.marcus-belz.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744","name":"marcus","url":"https:\/\/sql.marcus-belz.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/1680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1680"}],"version-history":[{"count":9,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/1680\/revisions"}],"predecessor-version":[{"id":1792,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/1680\/revisions\/1792"}],"wp:attachment":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}