PRIVATE test lnSeconds = SECONDS() ldStart = DATE(2008,12,31) ldEnd = DATE() lnMonth1 = month(ldStart) lnDay1 = day(ldStart) IF YEAR(ldStart) = YEAR(ldEnd) lnDiff = ldEnd - ldStart select dDOB from Patients where dDOB is not null and dDOB <> {} and dDOB ; between date(year(dDOB),lnMonth1,lnDay1) and (date(year(dDOB),lnMonth1,lnDay1) + lnDiff) ; ORDER BY dDOB INTO CURSOR curTest nofilter ELSE lnMonth2 = month(ldEnd) lnDay2 = day(ldEnd) select dDOB from Patients where dDOB is not null and dDOB <> {} and ; (dDOB between date(year(dDOB),lnMonth1,lnDay1) and date(year(dDOB),12,31) ; OR dDOB between date(year(dDOB),1,1) and date(year(dDOB),lnMonth2,lnDay2)) ; ORDER BY dDOB INTO CURSOR curTest nofilter ENDIF =MESSAGEBOX(SECONDS() - lnSeconds) lnSeconds = SECONDS() ldStart = DATE(2008,12,28) ldEnd = ldStart+6 lnMonth1 = MONTH(ldStart) lnDay1 = DAY(ldStart) lnMonth2 = MONTH(ldEnd) lnDay2 = DAY(ldEnd) SYS(3054,12,'test') IF YEAR(ldStart)=YEAR(ldEnd) SELECT DISTINCT YEAR(ddob) AS nYear, {} AS dStart, {} AS dEnd ; FROM patients INTO CURSOR crsYears READWRITE WHERE dDOB IS NOT NULL AND dDOB <> {} REPLACE ALL dStart WITH DATE(nYear, lnMonth1, lnDay1) ; , dEnd WITH DATE(nYear, lnMonth2, lnDay2) ELSE SELECT DISTINCT YEAR(ddob) AS nYear, {} AS dStart, {} AS dEnd ; FROM patients INTO CURSOR crsYears1 READWRITE WHERE dDOB IS NOT NULL AND dDOB <> {} SELECT nYear, DATE(nYear, lnMonth1, lnDay1) AS dStart, DATE(nYear, 12, 31) AS dEnd; FROM crsYears1 ; UNION SELECT nYear, DATE(nYear, 1, 1) AS dStart, DATE(nYear, lnMonth2, lnDay2) AS dEnd; FROM crsYears1 ; INTO CURSOR crsYears READWRITE ENDIF SELECT ddob FROM patients; JOIN crsYears ON BETWEEN(ddob, dStart, dEnd) =MESSAGEBOX(SECONDS() - lnSeconds) BROWSE FOR MONTH(dDob) = 2 _cliptext = test>>Yes, I think I understood myself this as well.
>>select dDOB from Patients where dDOB is not null and dDOB <> {} and dDOB ; >>between date(year(dDOB),lnMonth1,lnDay1) and (date(year(dDOB),12,31) and dDOB between(date(year(DOB),1,1) and date(year(DOB),lnMonth2, lnDay2); >>ORDER BY dDOB INTO CURSOR curTest nofilter>
>ldStart = DATE(2008,12,28) >ldEnd = ldStart+6 > >lnMonth1 = MONTH(ldStart) >lnDay1 = DAY(ldStart) > >lnMonth2 = MONTH(ldEnd) >lnDay2 = DAY(ldEnd) > >IF YEAR(ldStart)=YEAR(ldEnd) > SELECT DISTINCT YEAR(ddob) AS nYear, {} AS dStart, {} AS dEnd ; > FROM patients INTO CURSOR crsYears READWRITE > REPLACE ALL dStart WITH DATE(nYear, lnMonth1, lnDay1); > , dEnd WITH DATE(nYear, lnMonth2, lnDay2) > >ELSE > SELECT DISTINCT YEAR(ddob) AS nYear, {} AS dStart, {} AS dEnd ; > FROM patients INTO CURSOR crsYears1 READWRITE > SELECT nYear, DATE(nYear, lnMonth1, lnDay1) AS dStart, DATE(nYear, 12, 31) AS dEnd; > FROM crsYears1 ; > UNION SELECT nYear, DATE(nYear, 1, 1) AS dStart, DATE(nYear, lnMonth2, lnDay2) AS dEnd; > FROM crsYears1 ; > INTO CURSOR crsYears READWRITE >ENDIF > >SELECT ddob FROM patients; > JOIN crsYears ON BETWEEN(ddob, dStart, dEnd) >>