Gelöst: Spalte in Format JJJJ nimmt Werte nicht analog an
Moderator: Moderatoren
Gelöst: Spalte in Format JJJJ nimmt Werte nicht analog an
In einer Tabelle habe ich eine Spalte mit dem Datumsformat JJJJ um einen Zeitraum vom 01.01. bis zum 31.12. eines jeden Jahres zu definieren. Wenn ich ein Jahr eingebe, wandelt Base es immer in das Jahr 1905. Wenn ich das Jahr als komplettes Datum speichere z.B. 01.01.2008 ist die Formatierung als 2008 zwar korrekt, aber in Base ist ja immer noch 01.01.2008 gespeichert. Das Problem liegt darin, das ich die Jahresangabe benötige, um sie in einer Abfrage mit einer anderen DAtumsangabe vergleichen möchte.
(Zur Veranschaulichung: Das Jahr steht mit einer Zeit für einen regelmäßigen Seminarzeitpunkt des örtlichen sowie von weiteren anderen Seminaren. Die Zeit ändert sich jedes Jahr. In einer anderen Tabelle liegt ein Plan, zu welchen Datum ein Gastredner zu einem Speziellen Thema spricht, bzw. eigene Referenten zu anderen Seminaren als Redner eingeladen werden. Von der Datenbank heraus werden Einladungen erstellt, die die Verbindung von u.a. Seminarort und der entsprechenden Zeit zu dem entsprechenden Datum aufweist.)
Hat jemand einen Tip, wie ich das mit der Jahresangabe realisieren kann?
Vielen Dank Stephan
(Zur Veranschaulichung: Das Jahr steht mit einer Zeit für einen regelmäßigen Seminarzeitpunkt des örtlichen sowie von weiteren anderen Seminaren. Die Zeit ändert sich jedes Jahr. In einer anderen Tabelle liegt ein Plan, zu welchen Datum ein Gastredner zu einem Speziellen Thema spricht, bzw. eigene Referenten zu anderen Seminaren als Redner eingeladen werden. Von der Datenbank heraus werden Einladungen erstellt, die die Verbindung von u.a. Seminarort und der entsprechenden Zeit zu dem entsprechenden Datum aufweist.)
Hat jemand einen Tip, wie ich das mit der Jahresangabe realisieren kann?
Vielen Dank Stephan
Zuletzt geändert von geimist am Fr, 22.02.2008 00:58, insgesamt 1-mal geändert.
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Das bezweifle ich:geimist hat geschrieben:In einer Tabelle habe ich eine Spalte mit dem Datumsformat JJJJ
Du hast eine Spalte, die *WIE* definiert ist (DATE?), und die Du (im F4 Browser? in einem Formular?) als "JJJJ" formatiert ausgibst?
Um einen Anteil (Monat, Jahr) aus einem DATE Feld zu ermitteln, nehme eine Funktion der Datenbank, bei HSQLDB: MONTH(date), YEAR(date)
In einer gesonderten Spalte das JAHR zu sichern, wenn es in einem Datenfeld vorhanden ist, ist redundant.
Hilft das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Danke erstmal für die Antwort.komma4 hat geschrieben:Du hast eine Spalte, die *WIE* definiert ist (DATE?), und die Du (im F4 Browser? in einem Formular?) als "JJJJ" formatiert ausgibst?
Die Spalte ist natürlich mit dem Feldtyp DATE und unter Feldeigenschaften habe ich für das Datumsformat JJJJ eingestellt. Was meinst du, wie ich die Funktion verwenden kann. (ich bin ein ganz lausiger Anwender und nicht gerade ein Pionier was Makros und SQL angeht)
Mir ist es halt wichtig, mit DATE nicht nur einen einzelnen Tag zu definieren, sondern alle Tage des angegebenen Jahres.
Stephan
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Schildere Dein Problem bitte noch mal....
Du speicherst ein Jahr im DATE Feld und willst das mit einem Datum vergleichen?
Du speicherst ein Jahr im DATE Feld und willst das mit einem Datum vergleichen?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
So ähnlich. Hier noch einmal auf das wesentliche beschränkt:komma4 hat geschrieben:Schildere Dein Problem bitte noch mal....
Du speicherst ein Jahr im DATE Feld und willst das mit einem Datum vergleichen?
In der einen Tabelle sind die verschiedenen Seminare, das Jahr (JJJJ für die gesamten 365 Tage) und die entsprechende Uhrzeit vermerkt. Z.B. Seminar-X 2007 14:00 / Seminar-X 2008 18:00
In einer anderen Tabelle sind die Einladungen eingetragen. Z.B. für das Seminar-X der Referent-Y am 03.02.2007 Dafür soll eine Abfrage die entsprechende Uhrzeit von 14:00 ausgeben und für den 15.06.2008 eben 18:00. D.h. jedes Datum was zum entsprechenden Jahr passt soll die entsprechende Uhrzeit zugeordnet bekommen.
Das ganze funktoniert auch, sofern ich an Stelle der Jahresangabe (JJJJ) das korrekte Datum mit der entsprechenden Uhrzeit angebe. Aber auf diese Art und Weise müsste ich ja für jeden einzelnen Tag des Jahres die immer wieder gleiche Uhrzeit für alle 365 Tage eingeben. Das muss doch nicht sein, oder?
Ich hoffe, dass ich das einigermaßen verständlich beschrieben habe.
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Hallo Stephan,
wo ist denn in diesen Datensätzen ein "Primärschlüssel" verankert ? ? ?
Ohne die Grundsätze der "relationalen Datenbankerstellung" kannst Du Deine Daten in den "Müll" werfen.
http://www.tinohempel.de/info/info/date ... ierung.htm
Lies Dir das mal durch, dann verstehst Du , warum ich so forsch antworte.
Jedes "Seminar" in Deiner Datei müsste eine einmalige Nummer (Primärschlüssel), für das aktuelle Jahr oder Semester erhalten.
Und wenn das Seminar am "30. März 2008" um "14.00Uhr" und um "18.00Uhr" abgehalten wird, dann sind es 2Seminare, die bitteschön
durch 2SeminarNummern repräsentiert werden, nämlich der KursNr. 2008100295 und der KursNr. 2008100296. Wobei "2008" das Jahr und
"100" den OOo "Base_DBKurs" sowie "295" aussagt das es der "Kurs 295" ist, der am "30. März 2008 um 14.00Uhr" stattfindet.
mfg
Gert
wo ist denn in diesen Datensätzen ein "Primärschlüssel" verankert ? ? ?
Ohne die Grundsätze der "relationalen Datenbankerstellung" kannst Du Deine Daten in den "Müll" werfen.
http://www.tinohempel.de/info/info/date ... ierung.htm
Lies Dir das mal durch, dann verstehst Du , warum ich so forsch antworte.
Jedes "Seminar" in Deiner Datei müsste eine einmalige Nummer (Primärschlüssel), für das aktuelle Jahr oder Semester erhalten.
Und wenn das Seminar am "30. März 2008" um "14.00Uhr" und um "18.00Uhr" abgehalten wird, dann sind es 2Seminare, die bitteschön
durch 2SeminarNummern repräsentiert werden, nämlich der KursNr. 2008100295 und der KursNr. 2008100296. Wobei "2008" das Jahr und
"100" den OOo "Base_DBKurs" sowie "295" aussagt das es der "Kurs 295" ist, der am "30. März 2008 um 14.00Uhr" stattfindet.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Hallo Gert,Gert Seler hat geschrieben:Hallo Stephan,
wo ist denn in diesen Datensätzen ein "Primärschlüssel" verankert ? ? ?
Jedes "Seminar" in Deiner Datei müsste eine einmalige Nummer (Primärschlüssel), für das aktuelle Jahr oder Semester erhalten.
Ja, genauso ist es. In der Seminartabelle habe ich einen kombinierten Primärschlüssel bestehend aus dem Seminar und dem jeweiligen Jahr. Wie gesagt, die Relationen und Abfrage funktioniert auch richtig. Das Problem liegt nur darin, dass ich in der diskutierten Jahresspalte mit JJJJ keinen Zeitraum von 365 Tagen setzen kann. Verwende ich in der Jahresspalte ein einzelnes Datum, dann werden mir mit der entsprechenden Abfrage auch die richtigen Zeiten ausgespuckt, aber halt nur für Seminare dieses einzelnen Datums (ich müsste also wie gesagt für jeden Tag den Wert eingeben, der eingentlich für das gesamte Jahr gilt - das ganze also 365 mal mit jedem relevanten Datum, also 365 Datensätze wo einer reichen würde. Das will ich nicht wollen)
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
ich habe das Problem immer noch nicht erfasst (too much beer?)
...wenn nur das Jahr bei den SEMINAR Einträgen wichtig ist, warum interessiert Dich, ob der 01.01. gespeichert ist?
SELECT name, YEAR(jahr), uhrzeit FROM tabSeminar
Seminar-X, 2007, 14:00
Seminar-X, 2008, 18:00
SELECT referent, name, uhrzeit FROM tabSeminar as S, tabReferent as R WHERE YEAR( R.einsatztag) = YEAR(jahr)
Referent-Y, Seminar-X, 14:00
Referent-Y, Seminar.X, 18:00
Helfe mir doch bitte "vom Schlauch" . Danke.
...wenn nur das Jahr bei den SEMINAR Einträgen wichtig ist, warum interessiert Dich, ob der 01.01. gespeichert ist?
SELECT name, YEAR(jahr), uhrzeit FROM tabSeminar
Seminar-X, 2007, 14:00
Seminar-X, 2008, 18:00
SELECT referent, name, uhrzeit FROM tabSeminar as S, tabReferent as R WHERE YEAR( R.einsatztag) = YEAR(jahr)
Referent-Y, Seminar-X, 14:00
Referent-Y, Seminar.X, 18:00
Helfe mir doch bitte "vom Schlauch" . Danke.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Spalte in Format JJJJ nimmt Werte nicht analog an
Sorry, dass ich die Nerven so strapaziere.komma4 hat geschrieben:...wenn nur das Jahr bei den SEMINAR Einträgen wichtig ist, warum interessiert Dich, ob der 01.01. gespeichert ist?
Ich interessiere mich überhaupt nicht, ob ein einzelnes Datum gespeichert ist. Ich habe die Tabellenspalte mit dem Feldtyp "DATE" und durch die Eingabe der Jahreszahl möchte ich alle Tage des eingegebenen Jahres abdecken. Aber siehe Starteintrag, kann ich ein einzelnes Jahr nicht als solches eingeben. Wenn ich ein Jahr eingebe, z.B. 2008, so wandelt Base es immer in das Jahr 1905. Wenn ich ein beliebiges Datum eingebe z.B. 17.02.2008, so steht dann schon korrekt 2008 in dem Feld (Feld habe ich ja als JJJJ definiert). Aber evtl. Abfragen werden dann halt nur für den 17.02.2008 ausgegeben und nicht für die restlichen Tage von 2008.
Ich habe so die Vermutung, dass der Code den Du mir geschrieben hast, da irgendwie weiterhelfen kann, nur musst Du wissen, ich weiß überhaupt nicht wie. In meiner bisherigen Existenz konnte ich lediglich auf irgendwelche Tasten und Button drücken. Muss ich das bei der Abfrage (Entwurfsansicht) in die Zeile "FELD" eingeben???komma4 hat geschrieben:
SELECT name, YEAR(jahr), uhrzeit FROM tabSeminar
Seminar-X, 2007, 14:00
Seminar-X, 2008, 18:00
SELECT referent, name, uhrzeit FROM tabSeminar as S, tabReferent as R WHERE YEAR( R.einsatztag) = YEAR(jahr)
Referent-Y, Seminar-X, 14:00
Referent-Y, Seminar.X, 18:00
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Gelöst: Spalte in Format JJJJ nimmt Werte nicht analog an




Vielen Dank für die Hilfe.
So habe ich es jetzt gemacht:
In der Entwurfsansicht der Abfrage habe ich eine neue, nicht sichtbare Spalte mit dem Wert: YEAR("Seminar"."Jahr") sowie das entsprechende Kriterium: YEAR ("Referent"."Datum") erstellt. Jetzt funktioniert es wunderbar. Ich wusste einfach nicht, dass ich das Datum in der Abfrage als YEAR interpretieren muss.
Danke nochmal.
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11