Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL-Abfrage / ACCESS / Datum zwischen X und Y / Formatproblem

Empfohlene Antworten

Versuch mal die Methode aus DateValue aus der Select anweisung zu entfernen.

Scheint nicht zu funktionieren, gleicher Fehler.

Kann man da mit einem Union etwas machen? Oder zuerst alle auswählen, die "When (Date)" entsprechen und dann die o.g. Methode anwenden?

Jetzt hab ichs :)


WHERE value Between DateValue("08.08.2005") And DateValue("04.10.2005")

[EDIT]

Zu früh gefreut die Daten im Format 08/08/2005 werden nicht erfasst:(

Dir macht das anscheinend mehr Spass als mir. :-)

Auch das funktioniert nicht, in diesem Fall gibt er nur:

When (Date) 04/07/2005

When (Date) 04/07/2005

When (Date) 04/08/2005

When (Date) 04/08/2005

When (Date) 04/10/2005

When (Date) 04/10/2005

Nicht aber ALLE Daten, die in diesem Zeitraum liegen ...

Hmm??

Gibt es nicht so In Select Funktionen, mit denen man zuerst nach einem Attribut und dann nach dem anderen auswählen kann?


SELECT value

FROM Tabelle1

WHERE value Between DateValue("01.01.2005") And DateValue("31.12.2005");

In dem Feld Value hab ich folgendes stehen:

09.09.2005

peter

01.07.2005

02/02/2005

2006.10.09

2005.02.03

und die Abfrage bringt folgendes Ergebniss:

value

09.09.2005

01.07.2005

02/02/2005

2006.10.09

2005.02.03

[EDIT]

Es ist echt zu spät zum Programmieren :beagolisc Hab erst jetzt gesehen das da auch 2006 bei ist und das sollte nicht sein...also immernoch kein Erfolg Sorry


SELECT value

FROM Tabelle1

WHERE value Between DateValue("01.01.2005") And DateValue("31.12.2005");

In dem Feld Value hab ich folgendes stehen: 09.09.2005 peter 01.07.2005 02/02/2005 2006.10.09 2005.02.03 und die Abfrage bringt folgendes Ergebniss: value 09.09.2005 01.07.2005 02/02/2005 2006.10.09 2005.02.03
Nimm mal bitte diese Werte mit auf: 2006.02.08 2006.02.15 2006.02.08 22/02/2006 und probiers nochmal. Was kommt dabei raus? Edit: Ich sehe gerade, dass Du auch "2006.10.09" in Deiner Ausgabe hast. Das ist natürlich nicht gewollt. Das ist das Problem, welches man mit
SELECT DateValue(value) as date_value

FROM Properties

WHERE DateValue(value) Between DateValue("01.01.2005") And DateValue("31.12.2005");

umgehen kann ...

Vielleicht sollte man versuchen mit einer Art In Select zu arbeiten ... Hast Du eine Idee, wie?

Hier nochmal eine Zusammenfassung der Problematik:

ich greife via MS JET OLEDB auf eine ACCESS-DB zu, führe

SQL-Statements aus.

Ich möchte mir Datensätze aus einer ACCESS-Tabelle anzeigen lassen,

die zwischen bestimmten Datumsangaben liegen. Der Datentyp des

Feldes, in dem die Datumsangaben liegen ist Text. Zudem sind

die Datumsangaben in 3 verschiedenen Formaten. Ich formatiere also

mit einer einer Funktion namens DateValue um.

01.07.2005

02/02/2005

2005.02.03

Als SQL-Statement sieht das so aus:

SELECT eigenschaft_name, eigenschaft_wert

FROM tabelle

WHERE DateValue(eigenschaft_wert) Between DateValue("01.01.2005") And

DateValue("30.09.2005");

Das funktioniert auch soweit gut.

Jetzt das Problem; neben den Datumsangaben können in "eigenschaft_wert" auch

Personennamen enthalten sein (Wird über "eigenschaft_name" erkenntlich,

darin steht entweder "Wer" oder "Wann"). Wenn ein Personenname in

"eigenschaft_wert" enthalten ist, bringt die obige SQL-Anweisung einen Fehler, nämlich

"Description: Datentypen in Kriterienausdruck unverträglich."

Der Fehler ist mir auch klar, die Funktion DateValue kann mit dem

Personennamen nichts anfangen. Ich weiss nur nicht, wie ich das

umgehen kann.

Die Datensätze von Eigenschaft_name und Eigenschaft_wert sehen also z.B. so aus:

Wann 09.09.2005

Wer peter

Wann 01.07.2005

Wann 02/02/2005

Wann 2005.02.03

Vielleicht hat jemand von Euch eine Idee, wie man das Problem lösen

kann. An der Datenbank darf nichts verändert werden, ich darf

lediglich via OLEDB-Treiber darauf zugreifen.

Vielen Dank.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.