mysql between operator with dates

前端 未结 4 1227
栀梦
栀梦 2021-01-15 16:46
select \'2011-02-29\' BETWEEN \'2011-02-01\' AND \'2011-03-03\'‎

this is returning 1. I think between doesn\'t consider leap year.

4条回答
  •  庸人自扰
    2021-01-15 17:09

    you need to cast it to date like:

    SELECT DATE('2011-02-29') BETWEEN DATE('2011-02-01') AND DATE('2011-03-03')
    

    from the site :

    For best results when using BETWEEN with date or time values, use CAST() to explicitly convert the values to the desired data type. Examples: If you compare a DATETIME to two DATE values, convert the DATE values to DATETIME values. If you use a string constant such as '2001-1-1' in a comparison to a DATE, cast the string to a DATE.

提交回复
热议问题