Ich arbeite an einer Abfrage in SQL Server 2005, bei der ich einen Wert in DateTime
Variable in eine varchar
Variable im yyyy-mm-dd
Format (ohne Zeitteil) konvertieren muss . Wie mache ich das?
303
Ich arbeite an einer Abfrage in SQL Server 2005, bei der ich einen Wert in DateTime
Variable in eine varchar
Variable im yyyy-mm-dd
Format (ohne Zeitteil) konvertieren muss . Wie mache ich das?
CONVERT
Siehe MSDN-Dokumentation .Antworten:
Mit Microsoft SQL Server:
quelle
LEFT(.., 10)
statt zu verwendenCONVERT(CHAR(10), ...)
? Auch diejenigen, die mit den neueren Versionen von SQL Server als 2005 (!) Arbeiten, sollten die Antwort von Zar Shardan lesen, die eineFORMAT(date_value, format_string)
funktionsbasierte Lösung vorschlägt .FORMAT()
ist zu langsam relativ zuconvert(char(10),...)
Hier ist ein Test-SQL für alle Stile.
Hier ist das Ergebnis
Machen
nvarchar(max)
kürzer die Zeit zu trimmen. Zum Beispiel:Ausgänge:
quelle
dd-mm
oderjun - 28
. Gibt es eine Option?Versuche Folgendes:
Für eine vollständige Datumszeit und nicht nur ein Datum tun Sie Folgendes:
Auf dieser Seite finden Sie Informationen zum Konvertieren von Stilen:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
ODER
SQL Server CONVERT () -Funktion
quelle
SQL Server 2012 hat eine neue Funktion, FORMAT: http://msdn.microsoft.com/en-us/library/ee634924.aspx
und Sie können benutzerdefinierte Zeichenfolgen für das Datums- und Uhrzeitformat verwenden: http://msdn.microsoft.com/en-us/library/ee634398.aspx
Diese Seiten implizieren, dass es auch in SQL2008R2 verfügbar ist, aber ich habe keine zur Hand, um zu testen, ob dies der Fall ist.
Anwendungsbeispiel (australische Datums- und Uhrzeitangabe):
quelle
Sie können verwenden
DATEPART(DATEPART, VARIABLE)
. Zum Beispiel:quelle
Entweder
Cast
oderConvert
:Syntax für
CAST
:Syntax für
CONVERT
:http://msdn.microsoft.com/en-us/library/ms187928.aspx
Eigentlich, seit Sie nach einem bestimmten Format gefragt haben:
quelle
- Dies gibt Ihnen die Zeit als 0 im Format 'JJJJ-MM-TT 00: 00: 00.000'.
quelle
Mit Microsoft SQL Server:
Verwenden Sie die Syntax für CONVERT:
Beispiel:
Weitere Informationen zum Stil finden Sie hier: MSDN - Cast and Convert (Transact-SQL) .
quelle
Versuchen:
Mehr zu MS SQL Tipps
quelle
Versuche Folgendes:
Dann müssten Sie das "." Ersetzen. mit "-".
Hier ist eine Website, die http://www.mssqltips.com/tip.asp?tip=1145 hilft
quelle
Ich habe eine feste Datenlänge von,
char(10)
wie Sie ein bestimmtes Zeichenfolgenformat wünschen.quelle
Das OP erwähnte das Datum / Uhrzeit- Format. Für mich steht der Zeitteil im Weg.
Ich denke, es ist etwas sauberer, den Zeitanteil (durch Umwandeln von Datum und Uhrzeit) vor dem Formatieren zu entfernen.
quelle
So mache ich es:
CONVERT(NVARCHAR(10), DATE1, 103) )
quelle
Sie können Ihr Datum in viele Formate konvertieren. Die Syntax ist einfach zu verwenden:
In Ihrem Fall habe ich gerade die Größe von nvarchar (10) wie folgt konvertiert und eingeschränkt:
Weitere Informationen finden Sie unter: http://www.w3schools.com/sql/func_convert.asp
Eine andere Lösung (wenn Ihr Datum eine Datetime ist) ist ein einfaches CAST :
quelle
Versuchen Sie dieses SQL:
quelle
Für SQL Server 2008+ Sie können CONVERT und FORMAT zusammen verwenden.
Zum Beispiel für den Zeitstempel im europäischen Stil (z. B. Deutschland):
quelle
Sie haben nicht gesagt, welche Datenbank, aber mit MySQL ist hier eine einfache Möglichkeit, ein Datum aus einem Zeitstempel abzurufen (und die Konvertierung des Varchar-Typs sollte automatisch erfolgen):
quelle
Der kürzeste und einfachste Weg ist:
quelle
quelle
quelle
Schreiben Sie eine Funktion
quelle
wird
05/05/2020 10:41:05 AM
als Ergebnis gebenquelle
Sie sagen nicht, welche Sprache, aber ich gehe davon aus,
C#/.NET
dass es einen nativenDateTime
Datentyp hat. In diesem Fall konvertieren Sie es einfach mit derToString
Methode und verwenden Sie einen Formatbezeichner wie:Ich würde jedoch davor warnen, dies in einer Datenbankabfrage zu verwenden oder in eine SQL-Anweisung zu verketten. Für Datenbanken muss eine bestimmte Formatierungszeichenfolge verwendet werden. Sie sollten den Zeitteil auf Null setzen und die DateTime als SQL-Parameter verwenden, wenn Sie dies erreichen möchten.
quelle