我有两个字段,其中存储了事件的特定日期范围。
让我们说,活动将于12月13日12月12日开始。
所以我们的领域是
姓名:我的活动 Start_at:12/13/12 End_at:12/20/12
用户将有两个输入框。一个框将声明from_date和另一个to_date。如果用户选择
from_date:12/15/12 to_date:12/19/12
它应该显示'my event`记录,因为它属于date_range。
问题:你如何在SQL中解决这个问题?
答案 0 :(得分:1)
这取决于您如何将日期数据保存在数据库中
如果是'datetime'字段,请使用'之间'构造
mysql_query("select * from events where date between '".date("Y-m-d H:i:s", strtotime($from_date))."' and ".date("Y-m-d H:i:s", strtotime($to_date)));
我无法进行确切的查询,因为我不知道表中的字段名称和查询中的参数名称
我希望你理解这个想法
答案 1 :(得分:0)
至于我的经历。 INT数据类型中的日期比mysql数据库上的datetime数据类型轻, 您可以尝试先将日期时间更改为INT,然后在将其保存到数据库之前将其转换为秒,例如:
<?php
$start_at = strtotime("12/13/12");
$end_at = strtotime("12/20/12");
/* SAVE on the database */
?>
然后将其保存在INT数据类型
的表日期字段中然后在查询中,您可以轻松地说
如果用户在两个字段(开始和结束字段)上输入from_date:12/15/12 to_date:12/19/12
<?php
$start_at = strtotime($from_date); //12/15/12
$end_at = strtotime($to_date); //12/19/12
/*do the query*/
mysql_query("SELECT name FROM table WHERE Start_at <= '$start_at' AND End_at >= '$end_at'");
?>
我没有完成剧本,但想法就在那里,希望你能得到它。