lnyear = YEAR(DATE()) ldstart = DATE(lnyear - 1, 4, 1) ldstop = DATE(lnyear, 3, 31) SELECT *; FROM MyTable; WHERE BETWEEN(mytable.datefield, ldstart, ldstop); INTO CURSOR WhateverA couple of things to note. First, the above uses syntax that wasn't available prior to VFP 6.0. Second, the DATE() function returns the appropriate date format. Third, it should be faster that using macro substitution.