Zum Inhalt springen

Oracle - Suchen nach einem Datum


Ganymed

Empfohlene Beiträge

Hallo zusammen,

ich sitze hier grad und bekomme partout kein Ergebnis.

Und zwar möchte ich in einer Tabelle Datensätze zählen, die ein bestimmtes Datum haben. Ich bekomme aber kein Ergebnis.

Die Daten sind als "TT.MM.JJJ HH.MM.SS' gesichert (hoffe, das schreibt man so :))

Meine Abfrage lautet:

SELECT COUNT(*) FROM tabelle WHERE id=352 AND datum LIKE('09.06.2004%');

Was mache ich falsch?

Gruß

Ganymed

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Oralce erkennt dein Datum nicht als Datum.

Probier mal folgendes:

SELECT COUNT(*) FROM tabelle WHERE id=352 AND datum =to_date('09.06.2004', 'DD.MM.YYYY');

Frank

Hmm... geht leider immer noch nicht :(

Ergebns ist 0...

Verstehe ich nicht. Das Feld ist auch vom Datentyp date, wenns hier irgendwie weiterhilft... :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mir schon gedacht, dass es ein Date Feld ist.

Dann probier mal:

SELECT COUNT(*) FROM tabelle WHERE id=352 AND datum =to_char('09.06.2004', 'DD.MM.YYYY');

Frank

Hallo,

ich bekomme dann die Fehlermeldung "invalid number"...

Irgendwas ist doch das faul, oder? :confused:

Ich habs auch schon mit instr und substr versucht...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich sollte das gehen. Ich habe jetzt auch gerade kein Oracle hier um das zu testen.

Frank

Hehe... hab den ganzen Kram nochmal eingegeben. (dein zweites Beispiel).

Hab zwar immer noch ne Fehlermeldung jetzt aber "invalid character" :D

für exakt das Gleiche Statement...

Kapier ich nicht...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm, vielleicht hilft dir das:

AND TRUNC(datum) = TO_DATE('11.JUN.04', 'DD.MON.YYYY')

Hmmm... auch 0 als Ergebnis. Wenn ich anstatt dem to_date ein to_char eingebe, dann hab ich wieder die Fehlermeldung...

Ein Datum hat das Format (habs jetzt mal aus der DB rauskopiert)

09.06.2004 08:52:08

Ist doch, das ,was ich geschrieben hatte, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welchen Client benutzt du denn? sqlplus ?

Wenn ja dann poste doch mal den code abschnitt aus dem SQLPLUS

bsp:

SCHEELEC@AZUBIDB.WORLD> create table test (datum date);

Table created.

Elapsed: 00:00:00.01

SCHEELEC@AZUBIDB.WORLD> insert into test values ('09-06-2004 12:12:33');

1 row created.

Elapsed: 00:00:00.00

SCHEELEC@AZUBIDB.WORLD> commit;

Commit complete.

Elapsed: 00:00:00.00

SCHEELEC@AZUBIDB.WORLD> select * from test;

DATUM

-------------------

09.06.2004 12:12:33

Elapsed: 00:00:00.00

SCHEELEC@AZUBIDB.WORLD> spool off

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube ich hab den Fehler... du versuchst mit einem Datum-datentyp reguläre Ausdrücke zu verwenden z.b. '%'

du willst alle daten vom 09.06.2004 haben

select count(*) from tabelle where id =352 and datum between '08-06-2004 23:59:59' AND '09-06-2004 23:59:59';

SCHEELEC@AZUBIDB.WORLD> select count(*) from test where datum between '08-06-2004 23:59:59' AND '09-06-2004 23:59:59';

COUNT(*)

----------

1

Elapsed: 00:00:00.00

SCHEELEC@AZUBIDB.WORLD>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das was DerMatze oben geschrieben hat war schon ganz richtig. Das zeigt schon alleine das du da keine Fehlermeldung bekommen hast, sondern 0 als ergebnis. Allerdings hat er einen Fehler gemacht. Er hat als Jahreszahl 04 angegeben. Hinten aber definiert das er eine vierstellige Jahreszahl hat....

Versuch es so:

Und wenn du dann immer noch 0 bekommst bin ich mir sicher, das es einfach keine Daten für den entsprechenden Tag gibt... :)

SELECT COUNT(*) FROM tabelle WHERE id=352 AND TRUNC(datum) = TO_DATE('11.JUN.2004', 'DD.MON.YYYY')

Grüße mme

Link zu diesem Kommentar
Auf anderen Seiten teilen

select count(*) from tabelle where id =352 and datum between '08-06-2004 23:59:59' AND '09-06-2004 23:59:59';

Selbst wenn das funktioniert rate ich dir so davon ab. Solche statements sind doch dämlich... :) Welches is tder Monat und welches ist der Tag? Funktioniert hier vielleicht (?) aber wehe du setzt das statement in einer anderen Umgebung ab, wo das andere Datumsformate eingestellt sind.....

Ich würde immer so lästige Funktionen wie to_Date() usw. benutzen....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...