我已经构建了一个小应用程序,它具有用户管理,一个用于输入数据的前端控制台和一个用于控制前端部分的后端控制台.前端向MySQL数据库添加了时间戳的行.后端需要能够在X和Y日期之间从数据库中选择行.
到目前为止,一切都有效,除了我真正在努力的日期部分.
前端SQL输入看起来像这样(删除了伪代码简化):
$date = time(); $top_level_category = $_POST['top_level_category']; $sub_level_category = $_POST['sub_level_category']; $company = $_POST['company']; $agent_name = $_POST['agent_name']; $ticket_id = $_POST['ticket_id']; $sql = "INSERT INTO dacc_data (" . "id, top_level_category, sub_level_category, " . "agent_name, date, ticket_id, company" . ") VALUES (" . "NULL, '$top_level_category', '$sub_level_category', " . "'$agent_name', FROM_UNIXTIME('$date'), '$ticket_id', '$company'" . ")" ; $result = mysql_query($sql) or die (mysql_error());
这似乎工作正常,时间戳被选中并添加到我的表中的DATETIME列.它在数据库中显示为dd/mm/yyyy hh:mm:ss.
所以...我的第一个问题是 - 这是正确的方法吗?
第二个问题是,我需要什么样的SQL语句来提取X和Y日期之间的行数组.
如果这是漫无目的,请道歉,希望它很清楚,但如果您需要更多信息,请告诉我.
MySQL日期时间应使用短划线格式化:
YYYY-MM-DD HH:MM:SS
http://dev.mysql.com/doc/refman/5.0/en/datetime.html
然后,您可以通过以下几种方式查询日期范围:
select * from table where date >= '[start date]' and date <= '[end date]';
要么
select * from table where date between '[start date]' and '[end date]';
其中"table"是数据库表的名称,"date"是日期时间字段的名称.