Ich habe Monate in SQL Server als 1,2,3,4, ... 12 gespeichert. Ich möchte sie als Januar, Februar usw. anzeigen. Gibt es in SQL Server eine Funktion wie MonthName (1) = January? Ich versuche, eine CASE-Anweisung nach Möglichkeit zu vermeiden.
sql
sql-server
tsql
sql-server-2005
Saif Khan
quelle
quelle
Ich denke, dies ist der beste Weg, um den Monatsnamen zu erhalten, wenn Sie die Monatsnummer haben
Oder
quelle
quelle
quelle
Verwenden Sie den besten Weg
quelle
Es ist sehr einfach.
Ausgabe: Januar
quelle
Sie können die eingebaute
CONVERT
Funktion verwendenDies zeigt die ersten 3 Zeichen des Monats an (JAN, FEB usw.)
quelle
zusätzlich zum Original
SELECT DATENAME(m, str(2) + '/1/2011')
du kannst das
SELECT DATENAME(m, str([column_name]) + '/1/2011')
Auf diese Weise erhalten Sie Namen für alle Zeilen in einer Tabelle. Dabei steht [Spaltenname] für eine ganzzahlige Spalte mit den numerischen Werten 1 bis 12
2 stellt eine beliebige Ganzzahl dar. Durch Kontaktzeichenfolge habe ich ein Datum erstellt, an dem ich den Monat extrahieren kann. '/ 1/2011' kann ein beliebiges Datum sein
wenn Sie dies mit Variable tun möchten
quelle
Folgendes funktioniert für mich:
quelle
Verwenden Sie diese Anweisung, um den numerischen Wert des Monats in den Namen des Monats umzuwandeln.
quelle
In einigen Regionen wie Hebräisch gibt es Schaltmonate , die vom Jahr abhängen. Um Fehler in solchen Regionen zu vermeiden, sollten Sie die folgende Lösung in Betracht ziehen:
quelle
Sicher wird das funktionieren
quelle
Ab SQL Server 2012 können Sie FORMAT und DATEFROMPARTS verwenden , um dieses Problem zu lösen. (Wenn Sie möchten , Monatsnamen aus anderen Kulturen, ändern:
en-US
)Wenn Sie einen Monat mit drei Buchstaben wünschen:
Wenn Sie wirklich wollen, können Sie eine Funktion dafür erstellen:
quelle
Sie können die Konvertierungsfunktion wie folgt verwenden
quelle
Subtrahieren Sie einfach den aktuellen Monat vom heutigen Datum und addieren Sie dann Ihre Monatsnummer zurück. Verwenden Sie dann die Dateinamenfunktion, um den vollständigen Namen in einer Zeile anzugeben.
quelle
Ich denke, das ist genug, um den Namen des Monats zu bekommen, wenn du ein Datum hast.
quelle
quelle
Versuchen Sie Folgendes, um die Monatsnummer in den Monatsnamen umzuwandeln
quelle
quelle
Dieser hat für mich gearbeitet:
Aus einem Beitrag oben von @leoinfo und @Valentino Vranken. Habe gerade eine schnelle Auswahl getroffen und es funktioniert.
quelle
Erklärung:
MonthNumber
DatePart
die Monatsnummer zurückgegeben wirdquelle
ODER
quelle
Ich arbeite für mich
quelle
Sie können das Datum so erhalten. zB: - Benutzertabelle
Sie können den Monatsnamen so erhalten
Ausgabe
quelle
Verwenden Sie diese Anweisung, um den Monatsnamen abzurufen:
Dies gibt Ihnen einen kurzen Monatsnamen. So: Jan, Feb, Mar usw.
quelle
Hier ist meine Lösung, bei der einige Informationen von anderen verwendet werden, um ein Problem zu lösen.
quelle
In SQL Server gibt es keine systemdefinierte Funktion. Sie können jedoch Ihre eigene benutzerdefinierte Funktion erstellen - eine Skalarfunktion. Sie finden Skalarfunktionen im Objekt-Explorer für Ihre Datenbank: Programmierbarkeit-> Funktionen-> Skalarwertfunktionen. Unten verwende ich eine Tabellenvariable, um alles zusammenzuführen.
quelle
Sie können eine solche Funktion erstellen, um den Monat zu generieren und SELECT dbo.fn_GetMonthFromDate (date_column) als Month FROM table_name auszuführen
quelle
Am einfachsten ist es, die Funktion aufzurufen
MONTHNAME(your_date)
. Ihr_Datum kann ein statischer Wert oder der Wert aus einem Ihrer Tabellenfelder sein.quelle
SELECT MONTHNAME (concat ('1970 -', [Month int val], '- 01'))
Beispiel - SELECT MONTHNAME (concat ('1970 -', 4, '- 01'))
Antwort - April
quelle