AGB  ·  Datenschutz  ·  Impressum  







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

Datum von bis vergleichen

Ein Thema von DelTurbo · begonnen am 14. Sep 2017 · letzter Beitrag vom 14. Sep 2017
Antwort Antwort
Seite 2 von 2     12   
Glados
(Gast)

n/a Beiträge
 
#11

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 14:28
Wieviele Datensätze hast du denn?
Wenn es, wie schon erwähnt, recht wenige sind, dann lade sie alle und hole dir das Resultat mit Delphi-Code (also Schleifen, if und was weiß ich).
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 14:36
Fehlen da nicht einfach noch die Sekunden?
Das macht ja keinen Unterschied. Die Sekunden scheinen ja automatisch korrigiert zu werden.
Zitat:
Wenn sein Datum 2012-10-12 07:12:56 ist, dann würde das Resultat die fett markierte Zeile sein - ich denke das ist was er will
Dann ist aber wie geschreiben die Abfrage falsch, er fragt alle Datensätze ab, in dem sein Wert innerhalb der Zeitspanne liegt und die Zeispannen der Ergebnismenge liegt der Zeitwert, mit dem er vergleicht nun mal.

Deshalb vermute ich mal, dass das datum egal ist oder das unabhängig vom Datum gefiltert werden soll.
Zitat:
Ich bin noch immer dafür den SQL-Mist wegzulassen und alles in Delphi auszuwerten.
Definitiv nicht. Bei kleinen Datenmengen vielleicht ok, aber es macht keinen Sinn große Datenmengen zu übertragen wenn man die Filterung schon im DBMS durchführen kann. Man muss nur genau definieren, was man möchte.
Markus Kinzler
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#13

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 14:37
Zitat:
Ich bin noch immer dafür den SQL-Mist wegzulassen und alles in Delphi auszuwerten.
Definitiv nicht. Bei kleinen Datenmengen vielleicht ok, aber
Deswegen sagte ich
Zitat:
Je nachdem wie viele Einträge du in dieser Tabelle hast
Und wieviele er hat wissen wir ja nicht.^
Aber scheinbar hat er sein Problem ja schon gelößt.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#14

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 14:39
Das ist nicht viel. Es sind 435. Aber mit der obigen Abfrage klappt es nun.

Trotzdem danke
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#15

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 14:45
Naja, 435 würde ich schon als zu viel ansehen. Aber funktioniert ja jetzt also ist alles andere egal.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#16

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 19:22
Hmm..

(ungetestet)

Unter der Annahme, dass deine Timestamps als DateTime in der Datenbank abgelegt sind könntest Du auch folgendes SQL verwenden:

Code:
SELECT id,from_unixtime(von_unix),von_unix,FROM_UNIXTIME(bis_unix),bis_unix
FROM test_table
WHERE (unix_timestamp('2012-10-17 14:13') BETWEEN von_unix and bis_unix)
and TIME((unix_timestamp('2012-10-17 14:13')) BETWEEN TIME(von_unix) and TIME(bis_unix))
Die Funktion TIME() liefert den Zeit-Anteil des DateTimes...

https://stackoverflow.com/questions/...etime-in-mysql
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#17

AW: Datum von bis vergleichen

  Alt 14. Sep 2017, 21:05
Code:
SELECT id,from_unixtime(von_unix),von_unix,FROM_UNIXTIME(bis_unix),bis_unix FROM test_table WHERE (unix_timestamp('2012-10-17 14:13') BETWEEN von_unix and bis_unix);

Code:
351   2012-10-12 17:17:00   1350055020   2012-10-23 18:18:00   1351009080
352   2012-10-12 18:18:00   1350058680   2012-10-23 19:19:00   1351012740
353   2012-10-12 19:19:00   1350062340   2012-10-23 21:21:00   1351020060
354   2012-10-12 21:21:00   1350069660   2012-10-23 23:23:00   1351027380
355   2012-10-12 23:23:00   1350076980   2012-10-23 02:02:00   1350950520
356   2012-10-12 02:02:00   1350000120   2012-10-23 05:05:00   1350961500
357   2012-10-12 05:05:00   1350011100   2012-10-23 08:08:00   1350972480
358   2012-10-12 08:08:00   1350022080   2012-10-23 10:10:00   1350979800
359   2012-10-12 10:10:00   1350029400   2012-10-23 13:13:00   1350990780
360   2012-10-12 13:13:00   1350040380   2012-10-23 15:15:00   1350998100
361   2012-10-12 15:15:00   1350047700   2012-10-23 16:16:00   1351001760
362   2012-10-12 16:16:00   1350051360   2012-10-23 17:17:00   1351005420
Nun die frage. Was mache ich Falsch??? Ich finde einfach nichts darüber.
Ich würde sagen Du machst nicht falsch. Wenn Du ein Datum/Uhrzeit wählst, dass tatsächlich grenzwertig wäre, würdest Du auch nur einen (jenachdem ) Datensatz erhalten.

schau Dir das mal an:
[/code]
select t.von_unix-1350000000, unix_timestamp('2012-10-17 14:13')-1350000000 as such_unix,
t.bis_unix-1350000000
from testutst t
where unix_timestamp('2012-10-17 14:13') between
von_unix and bis_unix
order by von_unix;
[/code]

und das

Code:
select t.von_unix-1350000000, unix_timestamp('2012-10-12 03:24')-1350000000 as such_unix,
       t.bis_unix-1350000000
  from testutst t
 where unix_timestamp('2012-10-12 03:24') between
       von_unix and bis_unix
  order by von_unix;
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:30 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