Two possibillities:
1) Don't use keywords as column names: DATETIME is a SQL datatype, so that may not be helping. You can use them, but you need to "escape" the whole column name:
... WHERE [datetime] BETWEEN ...
But ... it is considered "bad practice". Instead, use a name that describes the values in the column, not their datatype: "EnterDate", "BirthDate", "ExpiryDate" or similar.
2) Check the column datatype: if you are storing date based info in text based columns, that can also cause problems when the system tries to convert them to a DateTime for comparison. Always store values in the most appropriate datatype, not string based just "because it's easier to code" - it always causes problems later on, when they are much, much harder to fix.