reiniger Posted August 9, 2010 Report Posted August 9, 2010 Sveicināti. man tabula ir ieraksti ar start_date un end_date. id | title | start_date | end_date 1 | test1 | 2010-08-10 | 2010-08-13 2 | test2 | 2010-08-11 | 2010-08-14 un man ir nepieciešams atlasīt ierakstus pec laika no līdz, piemēram, 2010-08-12 lidz 2010-08-30, tas bus iekš formas ar input laukiem. mans variants ko es iedomājos varētu uzskaitīt visas dienas no input ievaditā laika intervāla un tad pārbaudīt vai kāds no šiem datumiem ietilpst datubāzes laika intervālā. Vai ir kāds labāks variants? PS: pats vēl neesu izmēģinājis savu variantu Quote
Леший Posted August 9, 2010 Report Posted August 9, 2010 (edited) Ne īsti sapratu, ko cilvēks grib, bet http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_period-diff Sorry, tagad sapratu. Edited August 9, 2010 by Леший Quote
marcis Posted August 9, 2010 Report Posted August 9, 2010 SELECT * FROM `tabula` WHERE `start_date` >= '2010-08-12' AND `end_date` <= '2010-08-30' Visa gudrība.. Quote
codez Posted August 9, 2010 Report Posted August 9, 2010 (edited) Ja jāselekto tie intervāli, kuri pārklājas ar pierpasīto intervālu, tad vienkārši pārbaudi: Vai ieraksta sākuma datums ir mazāks par pierpasītā beigu datumu un ieraksta beigu datums ir lielāks par pierpasītā sākuma datumu: SELECT * FROM `tabula` WHERE `start_date` <= '2010-08-30' AND `end_date` >= '2010-08-12' Ja jāizvada tikai tad, ja ieraksta intervāls pilnībā ierkļaujas pārbaudāmajā intervālā, tad salīdzina vai ieraksta sākuma datums ir lielāsk par pieprasītā intervālā sākuma datumu un vai ieraksta beigu datums ir mazāks par pierpasītā intervāla beigu datumu kā uzrakstīja mārcis: SELECT * FROM `tabula` WHERE `start_date` >= '2010-08-12' AND `end_date` <= '2010-08-30' Edited August 9, 2010 by codez Quote
reiniger Posted August 9, 2010 Author Report Posted August 9, 2010 Paldies. Nezinu ko biju pats sadomajies, bet izradijas ti vienkārši. :) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.