Sonic: MS SQL - DatePart mit Long Time - Fehler!??

Hallo,

kann mir jemand sagen wieso ich Fehler bei folgender Abfrage mit "Long Time" bekomme?

Mit "h" funktioniert es wunderbar:

SELECT Datum, DatePart("h",[Datum]) FROM Tabelle1
WHERE DatePart("h",[Datum]) = "08"

Mit "Long Time" möchte ich aus dem Datumfeld (10.10.2005 08:00:00) die Uhrzeit extrahieren und es geht nicht:

SELECT Datum, DatePart("Long Time",[Datum]) FROM Tabelle1
WHERE DatePart("Long Time",[Datum]) = "08:00:00"

Danke im Voraus

  1. yo,

    es ist schon lange her, dass ich mssql benutzt hatte, insofern bin ich mir nicht sicher. ich habe aber meine zweifel, dass long time ein zulässiger parameter der funktion datetime ist. meistens werden eben dafür einfache abkürzungen wie 'h' benutzt. vielleicht solltest du am besten dafür die sehr gute online hilfe konsultieren.

    Ilja

    1. Hallo,

      es ist schon lange her, dass ich mssql benutzt hatte,

      insofern bin ich mir nicht sicher. ich habe aber meine zweifel, dass long time ein zulässiger parameter der funktion datetime ist. meistens werden eben dafür einfache abkürzungen wie 'h' benutzt. vielleicht solltest du am besten dafür die sehr gute online hilfe konsultieren.

      Laut MS Access-Hilfe gibt es diesen Parameter.
      Eng: "long time", Deu: "zzzzz".
      Aber es will nicht funktionieren!

      1. Hallo Sonic,

        Laut MS Access-Hilfe gibt es diesen Parameter.
        Eng: "long time", Deu: "zzzzz".

        Sprichst Du von MS Access oder von MS SQL-Server?

        Aber es will nicht funktionieren!

        Hinter MS Access steht die Jet-Engine als DBMS, die Jet-SQL versteht, Jet-SQL ist von Transact-SQL (auch T-SQL) von MS SQL-Server verschieden. Wenn Du MS SQL-Server verwendest, kannst Du mit der Dokumentation zu Access wenig anfangen.

        Freundliche Grüße

        Vinzenz

        1. Wenn Du MS SQL-Server verwendest, kannst Du mit der Dokumentation zu Access wenig anfangen.

          Ja, du hast recht. Und das mit CONVERT ist ein guter Vorschlag. Danke!

  2. Hallo Sonic,

    kann mir jemand sagen wieso ich Fehler bei folgender Abfrage mit "Long Time" bekomme?

    Mit "h" funktioniert es wunderbar:

    Die Onlinedokumentation, die Du übrigens auch bei Microsoft downloaden kannst, kennt keinen Parameter "Long Time". Wenn Du den Zeitanteil eines DATETIME-Feldes haben möchtest, so kannst Du das (wie ebenfalls in der Online-Dokumentation beschrieben) mit der Funktion CONVERT() tun:

    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

    SELECT Datum, DatePart("Long Time",[Datum]) FROM Tabelle1
    WHERE DatePart("Long Time",[Datum]) = "08:00:00"

      
    SELECT  
      Datum,  
      CONVERT(    -- wandle um  
        char(8),  -- Zieldatentyp: Zeichenkette mit 8 Buchstaben  
        Datum,    -- der Ausdruck, der umgewandelt werden soll  
        8         -- Ausgabeformat: hh:mm:ss  
      )  
    FROM Tabelle1
    

    Den Rest solltest Du selbst hinkriegen. Die Liste für style ist ebenfalls in der Onlinehilfe zu finden.

    Freundliche Grüße

    Vinzenz