Ich möchte Wert auswählen = 201301
Convert Datum YYYYMM Format
select getdate(), cast(datepart(year, getdate()) as varchar(4))+cast(datepart(MONTH, getdate()) as varchar(2))
es gibt 20131
was ist der normale Weg, dies zu tun?
Ich möchte Wert auswählen = 201301
Convert Datum YYYYMM Format
select getdate(), cast(datepart(year, getdate()) as varchar(4))+cast(datepart(MONTH, getdate()) as varchar(2))
es gibt 20131
was ist der normale Weg, dies zu tun?
SELECT LEFT(CONVERT(varchar, GetDate(),112),6)
Es ist Monat 1, also erhalten Sie einen erwarteten Wert. Sie werden den Monat ZeroPad haben (1 -> 01), nach dieser Antwort: How do I convert an int to a zero padded string in T-SQL?
SELECT CONVERT(nvarchar(6), GETDATE(), 112)
Upvotes für diese Antwort! Viele, viele upvotes! – Kermit
Dies ist eine sehr elegante Lösung! Daumen hoch – Nightmaresux
Schön und einfach. Sie können Unicode auch löschen, wenn Sie möchten: 'SELECT CONVERT (varchar (6), GETDATE(), 112)' – jumxozizi
Eigentlich ist dies ist die richtige Art und Weise zu bekommen, was Sie wollen, es sei denn, Sie verwenden können, MS SQL 2014 (das schließlich benutzerdefinierte Formatstrings für Datumsangaben aktiviert).
Um yyyymm
statt yyyym
, können Sie diesen kleinen Trick:
select
right('0000' + cast(datepart(year, getdate()) as varchar(4)), 4)
+ right('00' + cast(datepart(month, getdate()) as varchar(2)), 2)
Es ist schneller und zuverlässiger als gettings Teile convert(..., 112)
.
Sie Ihr Datum in vielen Formaten konvertieren können, zum Beispiel:
CONVERT(NVARCHAR(10), DATE_OF_DAY, 103) => 15/09/2016
CONVERT(NVARCHAR(10), DATE_OF_DAY, 3) => 15/09/16
Syntaxe:
CONVERT('TheTypeYouWant', 'TheDateToConvert', 'TheCodeForFormating' *)
In Ihrem Fall, habe ich nur umgewandelt und beschränken Größe von nvarchar (6) wie folgt aus:
CONVERT(NVARCHAR(6), DATE_OF_DAY, 112) => 201609
Mehr unter: http://www.w3schools.com/sql/func_convert.asp
Eine effizientere Methode, die eher integer math verwendet als Strings/Varchars, das eher in einem int-Typ führen wird als ein String-Typ ist:
SELECT YYYYMM = (YEAR(GETDATE()) * 100) + MONTH(GETDATE())
addiert zwei Nullen auf der rechten Seite des Jahres und fügt dann den Monat zu den addierten zwei Nullen.
Für weitere Informationen überprüfen Sie diesen Link es verschiedene Datumsformat sql Server unterstützt. https://msdn.microsoft.com/en-us/library/ms187928.aspx –