我正在为数据库编写查询和视图。我想创建一个用户可以轻松用来每周或每月查看记录的视图。我知道我可以使用DATEDIFF(),但我只想要一个能在特定月份或周内显示信息的视图。所以我不需要编辑任何东西。任何想法或是否可能?
答案 0 :(得分:1)
当日记录:
SELECT date,subject,description FROM table_name
WHERE DATE( date ) = CURDATE( );
当月记录:
SELECT date,subject,description FROM table_name
WHERE MONTH( date ) = MONTH(NOW());
对于本年度记录:
SELECT date,subject,description FROM table_name
WHERE YEAR( date ) = YEAR(NOW());
对于选定的日期记录,首先需要在输入类型中添加datepicker并执行以下操作: 这里'datepicker'是html表单输入类型名称。
$date = $_POST['datepicker'];
$sql ="SELECT date,subject,description FROM table_name WHERE date='$date'";
对于选定的月份记录: 这里'月'是html表单输入类型名称。
$date = mysql_real_escape_string($_POST['month']);
$sql ="SELECT date,subject,description FROM table_name WHERE MONTH(date)='". mysql_real_escape_string($date) ."'";
对于选定的年份记录: 这里的'year'是html表单输入类型名称。
$date = $_POST['year'];
$sql ="SELECT date,subject,description FROM table_name WHERE YEAR(date)='$date'";
答案 1 :(得分:0)
这在很大程度上取决于你的桌子的结构。
它应该(或者你可以创建它们)以某种方式与时间相关的行。您可以创建一个PHP函数来提取您感兴趣的数据。
答案 2 :(得分:0)
尝试使用日期和时间功能(MONTH(),YEAR(),DAY())
过去1天:
SELECT * FROM jokes WHERE date > DATE_SUB(NOW(), INTERVAL 1 DAY) ORDER BY score DESC;
过去7天:
SELECT * FROM jokes WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK) ORDER BY score DESC;
过去30天:
SELECT * FROM jokes WHERE date > DATE_SUB(NOW(), INTERVAL 1 MONTH) ORDER BY score DESC;
有许多SQL日期/时间函数可以执行此操作。 通过SQL函数了解更多信息。
您可以为每日/每周/每月条目设计单独的页面,并在这些页面上显示相应的数据。