0 votes
1 view
in SQL by (20.3k points)

If I run a query with a between clause, it seems to exclude the ending value.

For example:

select * from person where dob between '2011-01-01' and '2011-01-31'

This gets all results with dob from '2011-01-01' till '2011-01-30'; skipping records where dob is '2011-01-31'. Can anyone explain why this query behaves this way, and how I could modify it to include records where dob is '2011-01-31'? (without adding 1 to the ending date because its been selected by the users.)

1 Answer

0 votes
by (36.7k points)

I guess, the field dob probably has the time component.

To truncate it out, you can use the below query:

select * from person 

where CAST(dob AS DATE) between '2011-01-01' and '2011-01-31'

Welcome to Intellipaat Community. Get your technical queries answered by top developers !