Autor Téma: BETWEEN - hraničné hodnoty ignoruje  (Přečteno 69 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2976
  • Karma: 29
    • Verze Delphi: XE7 professional
BETWEEN - hraničné hodnoty ignoruje
« kdy: 07-11-2017, 21:48:49 »

Mám
Kód: [Vybrat]
SELECT
  INVOICEINCOMINGITEMS.FKSERVICEPARAMETERS
FROM
  INVOICEINCOMINGITEMS
WHERE
  INVOICEINCOMINGITEMS.DATEFROM BETWEEN '1.1.2016' AND '31.12.2016' OR
  INVOICEINCOMINGITEMS.DATETO BETWEEN '1.1.2016' AND '31.12.2016'
kde:
  DATEFROM = 1.1.2016
  DATETO = 31.12.2016
a dataset je prázdny. To som veľmi prekvapený, lebo podľa mojich vedomostí má BETWEEN zahrnúť aj krajné dátumy.
Akonáhle jeden z dátumov posuniem do "roka", tak to je v poriadku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2976
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:BETWEEN - hraničné hodnoty ignoruje
« Odpověď #1 kdy: 07-11-2017, 21:51:55 »
Už sa príspevok nedá zmazať >:(
Už mi to funguje ako má :o
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Delfin

  • Hrdina
  • ****
  • Příspěvků: 373
  • Karma: 16
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
    • Ibi Yoyo :)
Re:BETWEEN - hraničné hodnoty ignoruje
« Odpověď #2 kdy: 07-11-2017, 21:54:01 »
Kód: MySQL [Vybrat]
  1. BETWEEN '1.1.2016 00:00:00' AND '31.12.2016 23:59:59'

Nebo definuj cas jen pro spodni hranici (zapisem pouze datumu je cas 00:00:00):

Kód: MySQL [Vybrat]
  1. BETWEEN '1.1.2016' AND '31.12.2016 23:59:59'
« Poslední změna: 07-11-2017, 21:57:10 od Delfin »
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2976
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:BETWEEN - hraničné hodnoty ignoruje
« Odpověď #3 kdy: 07-11-2017, 21:59:13 »
Ja som si poplietol pojmy a dojmy.  :-[ :-[ :-[ :-X  Hľadal som nesprávne ID :(
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Delfin

  • Hrdina
  • ****
  • Příspěvků: 373
  • Karma: 16
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
    • Ibi Yoyo :)
Re:BETWEEN - hraničné hodnoty ignoruje
« Odpověď #4 kdy: 07-11-2017, 22:15:58 »
Se stane :) Ja reagoval na zahrnuti krajnich hodnot. Pokud pouzivas ten BETWEEN operator pro TIMESTAMP sloupce, vez ze podminka:

Kód: MySQL [Vybrat]
  1. BETWEEN '1.1.2016' AND '31.12.2016'

nezahrne zaznamy kde je TIMESTAMP napr 31.12.2016 00:00:01.
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2976
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:BETWEEN - hraničné hodnoty ignoruje
« Odpověď #5 kdy: 07-11-2017, 22:23:25 »
Ďakujem za upozornenie. Nateraz používam jedine typ Date. S časom nepracujem ani ho neukladám. Ale aj na to príde.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: