使用mysql返回2个日期之间的特定元素

时间:2014-07-24 07:18:42

标签: php mysql sql date

我在使用mysql时遇到了一些麻烦,

我在我的数据库中有一些星座标志存储有日期(开始和结束)。

例如水瓶座存放在2001-01-20和2001-02-18之间。

所有日期都从2000年(年)开始,到了明年,它是2001年。

现在我有一个有生日约会的用户。我想回复他的标志,所以我试着做了一个请求,

例如,如果我的用户出生' 1990-12-26',我想要比较日期和月份,所以我做了类似的请求

$query = "SELECT  `zodiac_signs__id` ,  `zodiac_signs__name` ,  `zodiac_signs__img`,  
        RIGHT(  `zodiac_signs__date_start` , 5 ) as date_debut , 
        RIGHT( `zodiac_signs__date_end`,5)   as date_fin 
        FROM  `fit__zodiac_signs`  
        WHERE  '{$date_naissance}' BETWEEN RIGHT(  `zodiac_signs__date_start` , 5 ) 
            AND   RIGHT( `zodiac_signs__date_end`,5)";

我不明白的是,请求没有返回任何结果,

所有用户都应该返回一个标志。

我最有可能做错了,操纵日期,但我真的不知道在哪里。

有人建议将日期和月份存储在两个不同的列中,但数据库尚未将此信息存储在两个不同的列中。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果{$ date_naissance}的格式为' 1990-12-26',那么您可能想要这样做:

 ... WHERE  '".substr($date_naissance,-5)."' BETWEEN RIGHT( ...