我是否可以在一个月内创建一个显示表中所有记录的视图?

时间:2016-04-16 08:03:17

标签: php mysql sql

我正在为数据库编写查询和视图。我想创建一个用户可以轻松用来每周或每月查看记录的视图。我知道我可以使用DATEDIFF(),但我只想要一个能在特定月份或周内显示信息的视图。所以我不需要编辑任何东西。任何想法或是否可能?

3 个答案:

答案 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函数了解更多信息。

您可以为每日/每周/每月条目设计单独的页面,并在这些页面上显示相应的数据。