Group by über Datumsfeld in varchar (Oracle)

Moin,

ich habe eine Tabelle die beinhaltet Datum und Zeit im Format (YYYY-MM-DD HH:MI:SS) in einem varchar2-Feld.
Jetzt möchte ich gerne wissen, wie viele Einträge es für jeden Tag gibt.
Das Datum bekomme ich angezeigt mit folgendem select:

select to\_date(date, 'YYYY-MM-DD HH:MI:SS') AS Datum from tabelle

Ich bekomme nur das Gruppieren nicht hin. Versucht hab ich:

select count(\*), to\_date(date, 'YYYY-MM-DD HH:MI:SS') AS Datum from tabelle group by Datum

Fehlermeldung: ORA-00904: „DATUM“: invalid identifier

select count(\*) from tabelle group by to\_date(date, 'YYYY-MM-DD HH:MI:SS')

Fehlermeldung: ORA-01849: hour must be between 1 and 12

Hat jemand ne Idee?

Hallöle…
Hmm probiers doch mal statt mit (date, ‚YYYY-MM-DD HH:MI:SS‘)
nur mit HH. Also wäre dann von 1-12. Geht es dann?
Mir fällt sonst eigentlich nichts auf…
Grüßl :wink:

PS: Hab noch in meine Doku geschaut, hilft dir das vielleicht?
Probiers doch mal aus. Denke dass es einfach Probleme wegen dem Datumsformat gibt, ändert sich evtl. wenn du dieses vll. selbst bestimmts.
Die TO_CHAR-Funktion arbeitet mit Datumswerten. Sie gibt ein bestimmtes Datum im angegebenen Datumsformat aus.
Und hier noch n kleines Bsp.:

Das dritte Beispiel schreibt die Tageszahl, ‘of’ und den Monat aus. Anschließend wird das Jahr 4-stellig angezeigt, dahinter steht dir Uhrzeit. Mit Stunde, Minute und Sekunde ‚AM‘
z.B.:
3)

SELECT last_name,
TO_CHAR (hire_date, ‚fmDdspth Month YYYY fmHH:MI:SS AM‘) HIREDATE
// die Ausgabe schreibt die Tageszahl in Buchstaben aus. ‚of‘ ausgeschriebener Monat, 4 stelliges Jahr, Uhrzeit ‚AM‘//
FROM employees;

Wenn ich nicht den gesamten Datumsstring nehme kommt:
ORA-01830: date format picture ends before converting entire input string

Wenn ich folgendes ausführe

select to\_char(date, 'YYYY-MM-DD HH:MI:SS') from tabelle

kommt ORA-01722: invalid number

Ich habe mir die Inhalte angesehen. Die sehen alle gleich. Sie werden auch nicht manuell, sondern von einem Programm gefüllt.

select count(*), trunc(to_date(date, ‚YYYY-MM-DD HH24:MI:SS‘)) AS Datum from
tabelle group by trunc(to_date(date, ‚YYYY-MM-DD HH24:MI:SS‘))

Grüße, muzel :wink:

Hi!

select count(*), trunc(to_date(date, ‚YYYY-MM-DD HH24:MI:SS‘))
AS Datum from
tabelle group by trunc(to_date(date, ‚YYYY-MM-DD HH24:MI:SS‘))

Oder gleich das NLS_DATE_FORMAT (oder gleich mehrere NLS-Parameter) ändern …

Grüße,
Tomh

Hi,

wie wär´s denn so:
select count(*), Datum
from
(select to_date(date, ‚YYYY-MM-DD HH:MI:SS‘) AS Datum
from tabelle)
group by Datum;

Grüße

Chris

Das funktioniert. Danke.