Ich habe eine Abfrage in SQL, ich muss Datum in einem Format von dd/mmm/yy
bekommen
Beispiel: 25/jun/2013
.
Wie kann ich es für SQL Server konvertieren?
Ich bin nicht sicher, ob das gewünschte Format genau übereinstimmt. Mit convert()
und style 106
können Sie jedoch näher kommen. Ersetzen Sie dann die Leerzeichen:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
Für SQL Server 2008 gibt es bereits mehrere Antworten und Formatierungstypen . Diese Methode ist jedoch mehrdeutig und es wäre schwierig für Sie, sich die Nummer in Bezug auf Specific Date Format zu merken. Deshalb gibt es in den nächsten Versionen von SQL Server eine bessere Option.
FORMAT ( value, format [, culture ] )
Mit der Kulturoption können Sie das Datum für Ihre Zuschauer festlegen.
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result
---------------- ----------------------------- ------------- -------------------------------------
10/1/2011 01/10/2011 01.10.2011 2011/10/1
US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result
---------------------------- ----------------------------- ----------------------------- ---------------------------------------
Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日
Für die OP-Lösung können wir folgendes Format verwenden, das bereits von @Martin Smith erwähnt wurde:
FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
Einige beispielhafte Datumsformate:
Wenn Sie weitere Datumsformate von SQL Server wünschen, sollten Sie folgende Website besuchen:
wir können date in viele formate konvertieren
SELECT convert(varchar, getdate(), 106)
Dies gibt dd mon yyyy
zurück.
Mehr hier Das kann dir helfen
Die akzeptierte Antwort liefert bereits 2008 die beste Lösung mit integrierten Formatierungsmethoden.
Es ist zu beachten, dass die zurückgegebenen Ergebnisse jedoch von der Sprache des Login abhängen.
SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/')
Kehrt zurück
06/апр/2015
zum Zeitpunkt des Schreibens.
Für Leute, die auf diese Frage in neueren Versionen von SQL Server gestoßen sind, ist dies eine Methode, die dieses Problem vermeidet - und die Notwendigkeit, REPLACE
zu verwenden
FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')
Ab 2005 war es möglich, eine CLR-UDF zu schreiben, die ein DateTime, ein Formatierungsmuster und eine Kultur akzeptierte, um dasselbe zu simulieren.
Versuchen Sie es mit der folgenden Abfrage.
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');
Ergebnis: 20/Jun/13
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');
Ergebnis: 20/Jun/2013
Versuche dies :
select replace ( convert(varchar,getdate(),106),' ','/')
Versuche dies
select convert(varchar,getdate(),100)
der dritte Parameter ist das Format. Der Bereich reicht von 100
bis 114
. Jeder sollte für Sie funktionieren.
Wenn Sie ein Datum in dd/mmm/yyyy
benötigen, verwenden Sie folgendes:
replace(convert(char(11),getdate(),113),' ','-')
Ersetzen Sie getdate()
durch Ihren Spaltennamen. Das hat bei mir funktioniert.
Sie können diese Abfrage verwenden.
SELECT FORMAT (getdate(), 'dd/MMM/yy') as date
Hoffe, diese Abfrage hilft dir.
Vielen Dank!!
Jeder, der versucht, das Datum in die Variable "Datentyp" von SQL Server manuell einzugeben, verwendet dieses Format bei der Eingabe von
'yyyy-mm-dd'