AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [SQL] String -> Date Konvertierungsfehler
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL] String -> Date Konvertierungsfehler

Ein Thema von Neutral General · begonnen am 7. Sep 2010 · letzter Beitrag vom 7. Sep 2010
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

[SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 10:27
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert
Hallo,

Habe gerade eine Query die ca. grob so aussieht:

SQL-Code:
SELECT
  CAST(tabelle.charfeld as DATE)
FROM tabelle
Problem ist nur dass in diesem Feld ein String steht und aufgrund ungünstiger Umstände KANN es sein, dass in diesem Feld KEIN Datum steht. Daran kann ich leider auch nichts machen.
Wenn das jedoch bei einem Datensatz der Fall ist bekomme ich natürlich von Firebird einen Fehler an den Kopf geschmissen.

Gibt es ne Möglichkeit dieses Problem zu umgehen, bzw. solche Felder zu ignorieren oder die Fehler/Exceptions abzufangen und stattdessen NULL zu selektieren? Sone Art coalesce für den Fall, dass die Konvertierung fehlschlägt.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: [SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 10:48
Du könntest das Ganze in eine IIF() packen und per regex die Gültigkeit überprüfen.
In diesem Fall würde ich ich die Konvertierung aber im Programm machen
Markus Kinzler
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#3

AW: [SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 12:00
Schreib dir eine Selectable Stored Procedure mit einem entsprechenden Exception Handling ausgestattet wo du dann entscheidest, was zurückgegeben werden soll, wenn es sich um kein gültiges Datum handelt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: [SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 12:04
was wären denn die möglichen Feldinhalte?

Unter Oracle würde ich das ungefähr so lösen
Code:
select
  decode(charfield,null,null,' ',null,to_date(charfield,'yyyymmmdd'))
Wobei ich der Einfachheit halber annehme, daß als Ausnahmen nur Nulls und Blanks auftauchen können.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: [SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 12:04
Hallo,

Habs jetzt so gelöst:

SQL-Code:
SELECT
  case
    when (tabelle.charfeld like "__.__.____") then CAST(tabelle.charfeld as DATE)
    else 'TODAY'
  end as feld
FROM tabelle
Ist nicht 100%ig narrensicher, aber ich denke für meine Zwecke wird es erstmal reichen

@p80286: Nein es könnte theoretisch auch "Hallo Welt" drin stehn. Das ist gerade das Problem. Ansonsten würde ich das sicher auch (leichter) hinbekommen.

Aber danke für eure Hilfe
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: [SQL] String -> Date Konvertierungsfehler

  Alt 7. Sep 2010, 12:28
Wenn es ein solches Chaos ist dann denk auch an
Code:
_._.__
__._.__
_.__.__

_._.____
... usw.
Gruß K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 00:17 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