🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

DATEDIFF, wenn ein Datum fehlt

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Freischreiber
* LO-Experte *
Beiträge: 831
Registriert: Fr 28. Mär 2014, 10:41

DATEDIFF, wenn ein Datum fehlt

Beitrag von Freischreiber » Fr 16. Jan 2015, 18:17

Hallo,

ich versuche, eine Abfrage zu erstellen, die alle Rechnungen liefert mit Rechnungsdatum eine Woche zurückliegend oder älter:

Code: Alles auswählen

SELECT "Rechnungsnr", "AuftragID", "Betrag", "Datum", "Offen", DATEDIFF( 'dd', "t-rechnungen"."Datum", CURRENT_DATE ) AS "Tage" FROM "t-rechnungen" WHERE "t-rechnungen"."Offen" = TRUE AND DATEDIFF( 'dd', NULLIF ( "t-rechnungen"."Datum", '0' ), CURRENT_DATE ) >= 7 ORDER BY "Datum"
Das "NULLIF" ist der Versuch, auch dann Treffer (wenn auch mit unsinnigen Tage-Angaben) zu bekommen, wenn das Feld mit dem Rechnungsdatum leer ist, was bei allen alten Rechnungen der Fall ist (wurde vor Base nicht erfaßt).

Es kommt aber eine Fehlermeldung: data exception: invalid datetime format

Habe es auch mit '01.01.1800' statt '0' probiert, geht aber auch nicht...

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

Freischreiber
* LO-Experte *
Beiträge: 831
Registriert: Fr 28. Mär 2014, 10:41

Re: DATEDIFF, wenn ein Datum fehlt

Beitrag von Freischreiber » Fr 16. Jan 2015, 18:27

Äh...

IFNULL statt NULLIF, er soll ja rechnen können, auch wenn das Datumsfeld NULL hat, nicht wahr :D

Code: Alles auswählen

 ... AND DATEDIFF( 'dd', IFNULL( "t-rechnungen"."Datum", '1980-01-01' ), CURRENT_DATE ) >= 7 ... 
Aber er liefert keine Tage in diesen Fällen... auch nicht zuviele, z. B. bis 1980 zurück, rechnen kann man damit nicht...

Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: DATEDIFF, wenn ein Datum fehlt

Beitrag von RobertG » Fr 16. Jan 2015, 19:24

Hallo freischreiber,

ich habe gerade einmal den zweiten Teil ausprobiert:

Code: Alles auswählen

DATEDIFF( 'dd', IFNULL( "Datum", '1980-01-01' ), CURRENT_DATE )
ergibt bei mir am 16.1.2015 12799. Hat also das gewünschte Ergebnis.
Da muss irgendetwas anderes faul sein.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Freischreiber
* LO-Experte *
Beiträge: 831
Registriert: Fr 28. Mär 2014, 10:41

Re: DATEDIFF, wenn ein Datum fehlt

Beitrag von Freischreiber » Sa 17. Jan 2015, 08:47

Hallo Robert,

( habe gerade überlegt, ob meine leeren Datumsfelder vielleicht gar nicht NULL sind, und das IFNULL daher gar nicht greift... vielleicht sind sie nur "leer". Aber wie sehe ich das?

Ich habe per SQL versucht, die leeren Strings auf Null zu setzen, das scheint aber so nicht zu gehen:

Code: Alles auswählen

UPDATE "t-rechnungen" SET "Datum" = NULL where "Datum" IS ''
)

Ergänzung: Es kommt dann die Fehlermeldung : 1: data exception: invalid datetime format


Ergänzung 2:
- Die leeren Felder sind NULL, werden in einer Abfrage, ob NULL, als Treffer geliefert. Das IFNULL müßte also greifen.
- Es ist eine externe HSQL-DB 2.3.2.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten