Ich versuche, einen Hauptkalender in SQL Server zu erstellen. Ich bin vor, das Problem mit dieser Syntax:Wie verkette ich Datepart in SQL Server?
[dateid] as DATEPART(YEAR, [date]) & DATEPART(day, format([date],'DD')) & DATEPART(month, format([date], 'MM'))
[dateid] as convert(varchar(4), DATEPART(YEAR, [date])) + convert(varchar(2), DATEPART(day, format([date], 'DD'))) + convert(varchar(2), DATEPART(month, format([date], 'MM')))
[dateid] as cast(DATEPART(YEAR, [date]) as varchar(4)) + cast(DATEPART(day, format([date], 'DD')) as varchar(2)) + cast(DATEPART(month, format([date], 'MM')) as varchar(2))
Diese Aussagen sind unter create table tablename (...)
.
Ich habe oben Syntax versucht, und es zeigt:
Fehler bei der Konvertierung, wenn Datum und/oder Uhrzeit aus Zeichenkette
oder
Die Datentypen varchar Umwandlung und Varchar sind in dem '&'-Operator inkompatibel.
Kann mir jemand helfen, mit dieser, ich möchte wie Datum zeigen (YearDayMonth) - 20160111
- wie diese drei verketten?
Wenn Sie 'CONCAT' oder '+' verketten möchten. Außerdem sieht es so aus, als würden Sie versuchen, Datumsangaben als Strings zu speichern, verwenden Sie besser "datetime", "datetime" hat kein inhärentes Format. – HoneyBadger
Ich habe versucht [deideid] \t \t als concat (DATEPART (Jahr, [Datum]), DATEPART (Tag, Format ([Datum], 'DD')), DATEPART (Monat, Format ([Datum], 'MM'))) aber es zeigt Konvertierung fehlgeschlagen beim Konvertieren von Datum und/oder Uhrzeit aus Zeichenkette. – Mogli
Sie könnten 'try_convert' versuchen, es konvertiert die Werte, die es konvertieren kann, und gibt' null' zurück, wenn dies nicht möglich ist. Alternativ können Sie in Ihrem 'convert' einen Konvertierungsstil angeben. Dies hängt alles von Ihren Daten ab, da es Werte gibt, die nicht konvertiert werden können. – HoneyBadger