SQL-Server 2008 R2 FORMAT-Funktion : Fehler bei Erstellen einer Sicht im MS SQL-Server Management Studio
Hallo zusammen,
eigentlich sieht der Befehl
SELECT format(KalDat, yyyy) AS dat, KalDat_Kat, KalDat_KatDescript
FROM dbo.T_KALDAT
oder
SELECT format(KalDat, "yyyy") AS dat, KalDat_Kat, KalDat_KatDescript
FROM dbo.T_KALDAT
doch richtig aus. Egal wie ich es mache, erhalte ich stets die Fehlermeldung
" 'format' wird nicht als Name einer integrierten Funktion erkannt."
Ich versuche, eine Sicht in MS SQL-Server Management Studio zu erstellen. Statt "yyyy" kann ich natürlich auch "Short Date" oder so etwas setzen. Das ist ja alles dokumentiert. Bloss: es funktioniert -zumindest auf diesem Server- nicht.
Hat jemand einen Tipp ?
eigentlich sieht der Befehl
SELECT format(KalDat, yyyy) AS dat, KalDat_Kat, KalDat_KatDescript
FROM dbo.T_KALDAT
oder
SELECT format(KalDat, "yyyy") AS dat, KalDat_Kat, KalDat_KatDescript
FROM dbo.T_KALDAT
doch richtig aus. Egal wie ich es mache, erhalte ich stets die Fehlermeldung
" 'format' wird nicht als Name einer integrierten Funktion erkannt."
Ich versuche, eine Sicht in MS SQL-Server Management Studio zu erstellen. Statt "yyyy" kann ich natürlich auch "Short Date" oder so etwas setzen. Das ist ja alles dokumentiert. Bloss: es funktioniert -zumindest auf diesem Server- nicht.
Hat jemand einen Tipp ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 337060
Url: https://administrator.de/forum/sql-server-2008-r2-format-funktion-fehler-bei-erstellen-einer-sicht-im-ms-sql-server-management-studio-337060.html
Ausgedruckt am: 22.12.2024 um 07:12 Uhr
12 Kommentare
Neuester Kommentar
Guten Morgen,
laut der Beschreibung aus der MSDN gibt es die Funktion "Format()" erst ab SQL Server 2012.
Mit SQL Server 2008 kannst du die Funktion "Year()" nutzen:
laut der Beschreibung aus der MSDN gibt es die Funktion "Format()" erst ab SQL Server 2012.
Mit SQL Server 2008 kannst du die Funktion "Year()" nutzen:
select year(KalDat) as dat ...
In der Doku geht es im PowerPivot bzw. DAX. Die stehen dir u.a. in den Analysis Services des MS SQL Servers (SSAS) zur Verfügung, aber nicht im Umfeld der "normalen" SQL-Abfragen.
Moin,
hast du es mal mit dem CONVERT-Statement versucht?
Edit:
so sähe es aus (getestet mit MS SQL 2008R2 Express)
Ergbnis sieht dann vom Format TT.MM.YYYY aus
somit würdest du allerdings ein vollständiges Datumsfeld erhalten, wenn du nur einzelne Bestandteile haben willst, wurde oben ja bereits DATEPART genannt.
Gruß
em-pie
hast du es mal mit dem CONVERT-Statement versucht?
Edit:
so sähe es aus (getestet mit MS SQL 2008R2 Express)
CONVERT(VARCHAR([länge des Date/ timestamp Feldes]),[Feldname],104)
Ergbnis sieht dann vom Format TT.MM.YYYY aus
somit würdest du allerdings ein vollständiges Datumsfeld erhalten, wenn du nur einzelne Bestandteile haben willst, wurde oben ja bereits DATEPART genannt.
Gruß
em-pie
Guten Morgen,
ich habe im Moment keinen 2008er Server zur Verfügung, kann es daher nicht direkt testen - aber zur Sicherheit:
Du rufst den Befehlt über das SQL Server Management Studio in einer Abfrage auf?
Diese Abfrage funktioniert bei mir (SQL Server 2014 Express):
Ohne SELECT geht es nicht:
produziert einen Fehler.
ich habe im Moment keinen 2008er Server zur Verfügung, kann es daher nicht direkt testen - aber zur Sicherheit:
Du rufst den Befehlt über das SQL Server Management Studio in einer Abfrage auf?
Diese Abfrage funktioniert bei mir (SQL Server 2014 Express):
select convert(varchar(10), getdate(), 10)
Ohne SELECT geht es nicht:
convert(varchar(10), getdate(), 10)
Moin,
wie Tsocin anmerkte, muss es natürlich vollständig wie folgt lauten:
Ich habe es mit einem timestamp-Feld (Länge 23) getestet und es ist wie gewollt angezeigt worden: DD.MM.YYYY
[OT]
em-pie sind die Initialen meines Namens: M. P.
Und das auf dem Foto bin nicht ich, würde sonst geringfügig mein Geschlecht verfehlen
wie Tsocin anmerkte, muss es natürlich vollständig wie folgt lauten:
SELECT
CONVERT(VARCHAR(23),kaldat,104)
FROM
dbo.T_KALDAT
Ich habe es mit einem timestamp-Feld (Länge 23) getestet und es ist wie gewollt angezeigt worden: DD.MM.YYYY
[OT]
Hübsches Bild übrigens, sieht man hier eher selten. Kommt "em-pie" von "empirisch" oder von E * m * pi (statt E * m * c^2) ?
zu kompliziert gedacht em-pie sind die Initialen meines Namens: M. P.
Und das auf dem Foto bin nicht ich, würde sonst geringfügig mein Geschlecht verfehlen
Die Länge bezieht sich auf die Anzahl an Zeichen die man haben will, um also den Zeitanteil weg zu lassen nimmst du nur 10 Zeichen und nicht 23.
Allerdings kann es sein das die Option 104 als Stil unterhalb von SQL 2012 nur tt.mm.jj und nicht tt.mm.jjjj zurück gibt, da bin ich mir nicht sicher.
https://msdn.microsoft.com/de-de/library/ms187928(v=sql.90).aspx
Allerdings kann es sein das die Option 104 als Stil unterhalb von SQL 2012 nur tt.mm.jj und nicht tt.mm.jjjj zurück gibt, da bin ich mir nicht sicher.
https://msdn.microsoft.com/de-de/library/ms187928(v=sql.90).aspx
Die Länge bezieht sich auf die Anzahl an Zeichen die man haben will, um also den Zeitanteil weg zu lassen nimmst du nur 10 Zeichen und nicht 23.
Auch gut ^^Allerdings kann es sein das die Option 104 als Stil unterhalb von SQL 2012 nur tt.mm.jj und nicht tt.mm.jjjj zurück gibt, da bin ich mir nicht sicher.
https://msdn.microsoft.com/de-de/library/ms187928(v=sql.90).aspx
https://msdn.microsoft.com/de-de/library/ms187928(v=sql.90).aspx
Nepp, habe - wie gesagt - obigen Code (mit der 104) an einem SQL 2008R2 Express erfolgreich getestet. Ergebnis ist DD.MM.YYYY gewesen