![]() |
Datenbank: Access über MSSQL • Version: 2003 • Zugriff über: ADO/DBGo
Frac() für (MS) Access SQL
Hi!
Wie kann ich eine Abfrage nach den Nachkommastellen sortieren lassen (Ganzzahl interessiert nicht)? Floor() liefert leider auch eine Fehlermeldung zurück, sonst könnte man versuchen: SELECT *, Feld1 - Floor(Feld1) AS Nachkomma FROM MeineTabelle ORDER BY Nachkomma; ^-- Soll nur das Prinzip veranschaulichen, muss nicht Syntaktisch korrekt sein, also da bitte nicht drauf rumreiten. Hintergrund: Ich habe in meiner Tabelle mehrere Startzeiten (Datum, Uhrzeit als ein Double-Wert). Diese will ich nur nach Uhrzeit sortiert ausgeben lassen. Datum interessiert nicht. Wie mache ich das? Danke im Vorraus. |
Re: Frac() für MSSQL
Warum keine Date-Feld?
Welchen Fehler liefert Floor()? |
Re: Frac() für MSSQL
Hi,
einfach von DatumZeit den Datum-Anteil abhziehen...
SQL-Code:
select
Sort = datefield - CAST(ROUND(CAST(DateField AS real),0,1) AS datetime) from ... order by 1 |
Re: Frac() für MSSQL
Tabellenname: Termine
Feldname: Von Bei mir kommt bei
SQL-Code:
Syntaxfehler blabla und "AS" wir markiert. Kann Access mal wieder damit nicht umgehen? hm.
select
Sort = Termine.Von - CAST(ROUND(CAST(Von AS real),0,1) AS datetime) from Termine order by 1 Ausserdem, was ist wenn Termine später als 12:00 Uhr sind? Weil dann wird die Zahl doch aufgerundet und ich bekomme ein negatives Ergebnis, oder? Edit: Zitat:
Zitat:
|
Re: Frac() für MSSQL
SQL-Code:
oder
select * from Tabelle
order by convert(varchar,DatumsFeld,108)
SQL-Code:
Die CONVERT-Funktion mit diesen Parametern liefert die formatierte Uhrzeit des Datumsfeldes.
select convert(varchar,DatumsFeld,108), * from Tabelle
order by 1 |
Re: Frac() für MSSQL
Hi,
Zitat:
|
Re: Frac() für MSSQL
"Undefinierte Funktion 'convert' im Ausdruck."
Ich glaube, Access ist das echt zu dämlich für. Muss ich hier vll. deutsche Befehle benutzen (wie in Excel) so nach dem Motto: SELECT * FROM Termine ORDER BY UMWANDELN(varchar, Von, 108); Laut Hilfe gibt es die Funktion aber! Und mit Ceiling kann man glaube ich sogar direkt die Nachkommazahl ausgeben lassen. Aber es klappt nicht. Ich teste das Ganze hier gerade direkt in Access 2007, also kann das kein Delphiproblem sein. Trotzdem noch irgendwer einen Tip? Auszug aus der Hilfe: Zitat:
|
Re: Frac() für (MS) Access SQL
NormanNG, ich auch :oops:
|
Re: Frac() für (MS) Access SQL
Hallo,
wenn das DateTime-Feld in der Tabelle TBL.DT heißt, dann würde ich es so probieren:
SQL-Code:
Grüße vom marabu
SELECT * FROM TBL WHERE ... ORDER BY TimeValue(DT)
|
Re: Frac() für (MS) Access SQL
Funktioniert perfekt, vielen Dank!
Wo kann man so Infos nachschlagen? Die MS-Access-Hilfe taugt ja nichts, da -wie wir oben gesehen habe- zwar tolle Infos zum MS-SQL-Server stehen, diese Befehle aber mit einer einfachen Access-DB nicht funktionieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz