AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum 0 abfragen

Ein Thema von khh · begonnen am 22. Jul 2010 · letzter Beitrag vom 22. Jul 2010
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

Datum 0 abfragen

  Alt 22. Jul 2010, 08:08
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
Hallo zusammen,
kann ich im sql-string ein date-feld auf datum 0 abfragen.
in dem entsprechenden feld steht ja '30.12.1899'.
Oder muss ich expizit nach diesem 30.12.1899-datum abfragen?

Danke gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 08:14
30.12.1899 = 0 (wenn man es als Integer "Tage seit ..." interpretiert, siehe Delphi-Referenz durchsuchenTDateTime) ... es kommt drauf an, ob/wie du auf das Datumsfeld zugreifen kannst

aber warum nicht besser NULL verwenden?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 08:20
30.12.1899 = 0 (wenn man es als Integer "Tage seit ..." interpretiert, siehe Delphi-Referenz durchsuchenTDateTime) ... es kommt drauf an, ob/wie du auf das Datumsfeld zugreifen kannst

aber warum nicht besser NULL verwenden?
Das Feld wird vorher aus einer anderen Routine mit Datum 0 bestückt.
Deshalb steht nicht mehr NULL, sondern eben das Datum 30.12.1899 im Feld.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 08:52
Dann ist die Routine falsch implementiert, es sei denn es ist absolut sicher, daß das Datum 30.12.1899 nie nie nie niemals nicht vorkommen darf. Kurz: Ein leeres Datum muss NULL sein, nicht 0.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 09:03
Das sehe ich auch so. Aber so wie es momentan ist könnte man doch einfach auf < 01.01.1900 abfragen, das sollte eigentlich auch mit Rundungsungenauigkeiten klarkommen. Schön ist trotzdem was anderes
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 10:20
Das sehe ich auch so. Aber so wie es momentan ist könnte man doch einfach auf < 01.01.1900 abfragen, das sollte eigentlich auch mit Rundungsungenauigkeiten klarkommen. Schön ist trotzdem was anderes


Ihr habt ja Recht, ich werds dahingehend ändern dass NULL drin steht
Karl-Heinz
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#7

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 13:26
Null ist aber ein ziemlich lästiger "Wert" - Ich vermeide Nulls, wo es geht.
Eine der besonderen Heimtücken: Man kann in einer Query den Wert Null zwar als Parameter an SQL übergeben, eine Where-Klausel, in der ein solcher Parameter NULL ist, funktioniert aber dann nicht mehr. Die Bedingung wird immer zu NULL ausgewertet und dann als false interpretiert, die Negation der Bedingung ebenso.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 13:39
Null ist ein besonderer Wert und macht auch Sinn. Er bedeutet, dass das Feld nicht gesetzt ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 16:05
Es wird etwas OT, aber es ist doch schon richtig, dass NULL in Where-Klauseln nerven.
Es wäre m.E. sinnvoll wenn die SQL-Datenbanken NULL-Felder in Where-Klauseln standardmäig als "0" oder "" behandeln würden. Das würde SQL-Abfragen sicher häufig vereinfachen.

select * from table where field = 0

würde dann reichen statt

select * from table where (field = 0) or (field is null)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von mkinzler (22. Jul 2010 um 16:31 Uhr) Grund: SQL-Tag eingefügt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Datum 0 abfragen

  Alt 22. Jul 2010, 16:10
Null ist aber ein ziemlich lästiger "Wert" - Ich vermeide Nulls, wo es geht.
Eine der besonderen Heimtücken: Man kann in einer Query den Wert Null zwar als Parameter an SQL übergeben, eine Where-Klausel, in der ein solcher Parameter NULL ist, funktioniert aber dann nicht mehr. Die Bedingung wird immer zu NULL ausgewertet und dann als false interpretiert, die Negation der Bedingung ebenso.
ja das ist das Lästige daran , null zu verarbeiten geht immer über Umwege
Karl-Heinz

Geändert von khh (22. Jul 2010 um 16:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz