我有一个带有日期字段的数据库表,其数据类型也是日期,我想获取两个日期之间的那些recods。
我的查询是:
SELECT * FROM wp_races_entry WHERE date_in >=2012-02-08 && date_in<=2012-02-27
我也试过
SELECT * FROM wp_races_entry WHERE date_in BETWEEN 2012-02-08 AND 2012-02-27
我在日期2012-02-14
的表格中有记录,但仍然返回空值。
请帮助我指导我完全错过的内容。
答案 0 :(得分:5)
您的日期需要报价:
SELECT * FROM wp_races_entry WHERE date_in BETWEEN '2012-02-08' AND '2012-02-27'
如果没有引号,您的日期将被视为算术表达式:2012-02-08 = 2002。
您发布的查询等同于:
SELECT * FROM wp_races_entry WHERE date_in BETWEEN 2002 AND 1983
答案 1 :(得分:5)
2012-02-08
不是日期,它是一个产生结果2002
的整数计算。然后将其隐含地转换为日期,2002
表示2002 days from the base date
相反,使用'2012-02-08'
这是一个字符串,它也隐式地转换为日期,但是你想要的那个。
SELECT * FROM wp_races_entry WHERE date_in BETWEEN '2012-02-08' AND '2012-02-27'
答案 2 :(得分:1)
尝试:
SELECT * FROM wp_races_entry WHERE date_in>= '2012-02-08 00:00:00' and date_in<= '2012-02-27 00:00:00'