wie zum verketten von Datum & Jahr in eine Spalte sql

ich habe das Datum in einer Spalte & Jahr, in Spalte und ich brauche, um zu verketten und die Antwort bekommen, als Jan-2017 und das sollte im aktuellen Monat oder

  • fügen Sie einige Daten, die Probe und geben Sie Datentypen
InformationsquelleAutor Shiv | 2017-03-10



3 Replies
  1. 0

    Dies ist einfach. Ich nehme an, Ihr beide Spalte Datentypen sind DateTime-oder Date. Versuchen Sie Folgendes:

    SELECT CONCAT(SUBSTRING(DATENAME(month, YourMonthColumn), 0,4), '-', Year(YourYearColumn))
    FROM YourTableName
  2. 0

    Sql Server 2008 kompatibel: (keine concat() und keine format())

    Mit einem convert() Stil von 106 (oder 113), und nur unter der mon yyyy Teil, und ersetzen die ' ' mit '-',

    und Verwendung von Daten abgeschnitten Monat, so können wir-Gruppe und um durch Sie mit dateadd(month, datediff(month, 0, [Date] ),0):

    select MonthYear = replace(stuff(convert(varchar(12)
           ,dateadd(month, datediff(month, 0, [Date]), 0)
           ,106),1,3,''),' ','-')
           , Days = count(*)
    from dates
    group by dateadd(month, datediff(month, 0, [Date]), 0)
    order by dateadd(month, datediff(month, 0, [Date]), 0)

    rextester demo: http://rextester.com/DFF74396

    gibt:

    +-----------+------+
    | MonthYear | Days |
    +-----------+------+
    | Dec-2016  |   31 |
    | Jan-2017  |   31 |
    | Feb-2017  |   28 |
    | Mar-2017  |   10 |
    +-----------+------+

    Alternative mit Funktion Datename(Monat,Datum) für den Monat und die Verkettung des Jahres:

    select MonthYear = left(datename(month,dateadd(month, datediff(month, 0, [Date]), 0)),3)
           + '-'
           + convert(char(4),year(dateadd(month, datediff(month, 0, [Date]), 0)))
           , Days = count(*)
    from dates
    group by dateadd(month, datediff(month, 0, [Date]), 0)
    order by dateadd(month, datediff(month, 0, [Date]), 0)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.