-
Select Abfrage now() läuft auf Fehler
Hallo,
ich habe in MS Access 2003 eine Tabellenverknüpfung auf eine AS400 Datei per ODBC, hier frage ich unter anderen ein
Datums-Feld ab (BMDTEE, Datentyp=numeric, Länge=8) was auch
funtioniert mit der Direkteingaben (BMDTEE <= '20111231') oder mit BETWEEN, jetz möchte ich aber die Abfrage aber mit Heute (now()) bzw. Heute -5 .Die Fehlermeldung ist: ...Operanden des Vergleichsoperators = sind nicht kompatibel. (#-401)
Wer kann mir hier weiterhelfen???
-
Hallo,
entweder konvertierst die Zahl in ein Datum oder umgekehrt.
Ich würde allerdings ersteres bevorzugen.
Die Konvertierung hängt dann auch noch vom Datumsformat ab welches bei dir eingestellt ist.
Z.B. CCYY-MM-DD oder DD-MM-YY usw.
Code:
WHERE current date = date('2012-11-14')
lg Andreas
-
Hallo Andreas,
stehe gerade ein bischen auf dem Schlauch , ich bin noch Amateur in
diesem Bereich mein Format sieht so aus (CCYY-MM-DD) z.Bsp.
Code:
where BMDTEE <= '20111231'
Was muss ich nun genau tun, damit ich
nur die Daten von Heute angezeigt bekomme??
Ich muss das dann fest für die User abspeichern!!
Danke
-
Du musst die Abfrage so bauen, dass sie dann wie folgt aussieht:
Code:
WHERE date('2012-11-14') <= current date
Das kannst du z.B. so machen:
Code:
where current date >=
date (left(char(BMDTEE ), 4) Concat '-' concat
Substring(char(BMDTEE ), 5, 2) Concat '-' concat
right(trim (char(BMDTEE )), 2))
lg Andreas
-
Ein Datum ist ein Datum und weder ein numerischer Wert noch ein alphanumerischer Wert.
SQL ist jedoch so schlau, dass es einen alphanumerischen Wert in einem der folgenden Formate 'JJJJ-MM-TT', 'TT.MM.JJJJ' oder 'MM/TT/JJJJ' als Datum interpretieren und mit einem Datum vergleichen kann.
Mit der Funktion DATE kann allerdings auch ein alphanumerischer String im Format 'JJJJMMTTHHMMSS' (ohne Trennzeichen) in ein echtes Datum konvertiert werden.
Ein Datum im Format JJJJMMTT kann SQL nicht erkennen und nicht (mit der Funktion DATE()) konvertieren.
Vorausgesetzt Dein numerisches Datum ist im Format JJJJMMTT, kann die Abfrage wie folgt aussehen:
Code:
Select *
From YourTable
Where Date(Digits(NumDatum) concat '000000')) = Current_Date;
Birgitta
-
@Andreas
Nimm lieber DIGITS statt CHAR!
CHAR entfernt führende Nullen und richtet linksbündig aus und könnte somit zu unliebsamen Überraschungen führen.
Birgitta
-
 Zitat von B.Hauser
@Andreas
Nimm lieber DIGITS statt CHAR!
CHAR entfernt führende Nullen und richtet linksbündig aus und könnte somit zu unliebsamen Überraschungen führen.
Stimmt, bei CHAR muss man noch ein TRIM dazu setzen.
DIGITS ist ein guter Tipp!
-
Hallo,
erstmal Vielen Dank für Euren regen Einsatz und die vielen Tipps, finde ich echt Klasse, mein Problem ist leider noch nicht ganz gelöst. Ich habe jetzt zwar die Spalte "date", die ich auch sortieren kann, aber das ich nur die Ansicht eines Tages (aktuellen Tag am besten now()!!!) bekomme ich nicht hin, ich habe immer noch alle Datensätze, hier der Code:
Code:
select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,
bmort, bmber,
bmbmen, bmvmen, bmrmen, bmlm, bmmlm,
bmlenr, bmzule, bmbst1, bmbstp,
bmwenr, bmwepo, bmdtdc, bmdtee,
(left(DIGITS(BMDTEE ), 4) Concat '-' concat
Substring(DIGITS(BMDTEE ), 5, 2) Concat '-' concat
right(trim (DIGITS(BMDTEE )), 2))date
from birdatv6.pbestlo
WHERE current date = date('2012-11-14')
order by date DESC
Wo liegt mein Fehler???
-
Ich glaube du hast uns da etwas missverstanden.
Die Anweisung sollte wie folgt aussehen:
Code:
select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,
bmort, bmber,
bmbmen, bmvmen, bmrmen, bmlm, bmmlm,
bmlenr, bmzule, bmbst1, bmbstp,
bmwenr, bmwepo, bmdtdc, bmdtee,
from birdatv6.pbestlo
WHERE Date(Digits(BMDTEE ) concat '000000')) = Current Date
order by bmdtee DESC
-
Das Tagesdatum ist ja auch der 14.11.2012.
Wenn Du also selektierst
Where Tagesdatum = 14.11.2012 bekommst Du auch alle Datensätze.
Birgitta
-
Hallo Britta,
ich habe mich wahrscheinlich nicht eindeutig ausgedrückt iich bekomme nicht nur die Datensätze vom 14.11.2012 (das wäre ja okay) sondern von allen Tagen!!!
Hallo Andreas,
funktioniert leider nicht (ODBC-Aufruf fehlgeschlagen [IBM] [System i Access ODBC-Treiber][DB2 für i5/OS]SQL0104-Token ) ungültig. Gültige Token:......)
Ich habe es auch direkt im "System i Navigator" getestet da wird die letzte schließende Klammer markiert (läuft nicht), nehme ich die weg kommt die
Fehlermeldung:
"Nachricht: [SQL0181] Wert in Datums-, Zeit- oder Zeitmarkenzeichenfolge ungültig. Ursache . . . . : Die Darstellung der Zeichenfolge eines Datums-, Zeit- oder Zeitmarkenwerts erfüllt nicht die Bedingungen. *N ist entweder die ungültige Zeichenfolgekonstante oder die Spalten- oder Host-Variable, die die Zeichenfolge enthielt...."
-
1. Birgitta hat dich schon richtig verstanden.
Sie hat ganz richtig gesagt, dass du alle Sätze bekommst, wenn du Tagesdatum mit Tagesdatum vergleichst.
Es wäre das selbe wenn du WHERE 1=1 schreiben würdest.
2. zum Fehler:
ODBC/JDBC Treiber führt einige konvertierungen durch.
Probier einfach folgendes:
Code:
select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,
bmort, bmber,
bmbmen, bmvmen, bmrmen, bmlm, bmmlm,
bmlenr, bmzule, bmbst1, bmbstp,
bmwenr, bmwepo, bmdtdc, bmdtee,
from birdatv6.pbestlo
WHERE Date(Trim (Char (BMDTEE )) concat '000000') = Current Date
order by bmdtee DESC
Similar Threads
-
By COS in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 17-11-08, 08:13
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 21-09-06, 16:05
-
By deni87991 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-08-06, 10:05
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
By klausgkv in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-06-06, 13:47
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks