【问题标题】:How to get the data from database on current date automatic如何自动从数据库中获取当前日期的数据
【发布时间】:2014-03-14 15:16:26
【问题描述】:

我想从数据库中获取当前日期的数据。当我打开页面时,我看到获取今天当前日期的数据。如果我选择另一个日期,那么我会从数据库中获取另一个日期数据,这是我的概念http://joomusic.info/joosilver.php 的实时示例,如果您访问这里,那么您就会了解我的概念

<link rel="stylesheet" type="text/css" href="tcal.css" />
<script type="text/javascript" src="tcal.js"></script>
<script src="jquery.js"></script>
 <script>
   $(document).ready(function()
 {
   //ajaxTime.php is called every second to get time from server
   var refreshId = setInterval(function()
 {
   $('#timeval').load('ajaxTime.php?randval='+ Math.random());
 }, 1000);

   //stop the clock when this button is clicked
   $("#stop").click(function()
 {
   clearInterval(refreshId);
 });
 });
</script>
<form action="ko.php" method="get">
From : <input type="text" name="d1" class="tcal" value="<?php echo date("m/d/Y"); ?>" /> 
<input type="submit" value="SHOW">
</form>

<table id="resultTable" data-responsive="table" style="text-align: center; width: 400px;" border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
            <tr  bgcolor="#F1EDC2">
    <td><font color='#2F4F4F'><h2> Draw Time</h2></font></td>
    <td><font color='#2F4F4F'><h2> Wining Number</h2></font></td>
</tr>
</thead>
<tbody>
  <?php
    include('connect.php');
    if (isset($_GET["d1"])) { $d1  = $_GET["d1"]; } else { $d1=('Y-m-d H:i:s'); }; 
    $result = $db->prepare("SELECT * FROM birthday WHERE date = :a");
    $result->bindParam(':a', $d1);
    $result->execute();
    for($i=0; $row = $result->fetch(); $i++){
  ?>
<tr class="record">
            <tr  bgcolor="#EEF3E2">
    <td><font size=5><font color='#008B00'><?php echo $row['dt']; ?></font></td>
    <td><font size=5><font color='#008B00'><?php echo $row['wn']; ?></font></td>
</tr>
<?php
}
?>
</tbody>
</table>

如果我将这一行 $result = $db-&gt;prepare("SELECT * FROM birthday WHERE date = :a"); 更改为 $result = $db-&gt;prepare("SELECT * FROM birthday WHERE date &lt;= :a");,那么我将获得所有日期数据......但我只想要自动当前日期数据这里是我的概念的实时示例 http://joomusic.info/joosilver.php 我想要这样 100%

【问题讨论】:

  • 去掉小时、分钟和秒?
  • 所以如果我删除这个 Y-m-d H:i:s @royal-bg 我在这里添加什么
  • 只删除小时、分钟和秒,留下年、月和日期。这是简单的逻辑。如果要检索当前日期的记录,但一个是从早上开始,第二个是从中午开始,则不应按时间进行比较。只是约会
  • 您还缺少数据格式周围的 date() 部分。在你的其他地方。
  • 不,你需要date = DATE(:a) .......这是一个删除时间戳的mysql日期格式化程序,所以它只是dd/mm/yyyy --- 它可能会慢一些,但它可能会解决你的问题

标签: php mysql sql database date


【解决方案1】:

您没有提及date 列的数据类型。

但是日期、时间戳和日期时间项在WHERE 语句中使用起来有点棘手。如果您想查找特定日期的所有行,最好的方法是:

WHERE whatever
  AND `date` >= DATE(:a)
  AND `date` <  DATE(:a) + INTERVAL 1 DAY

这将获取从我提到的那天午夜开始的所有 date 值,直到但不包括我提到的第二天的午夜。

你也可以这样做(或类似的)

WHERE whatever
  AND DATE(`date`) = DATE(:a)  /* slow! */

但它会阻止使用索引来满足您的查询,从而使其变慢。

这是我写的一篇文章,提供了一些背景知识。 http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/

【讨论】:

    【解决方案2】:

    需要考虑的三点: 1. 如果您只想要当前日期结果,则只需使用“=”。 2.这里我们需要看看你的生日表中日期列的数据类型是什么。 如果数据类型是日期时间,则将 hh:mm:ss 添加到日期,或者如果数据类型只是日期,则只需使用日期。 3.如果日期列是int并将它们存储在时间戳中,则将日期转换为微时间并使用它。

    SELECT * FROM yourTable WHERE CURDATE() >= STR_TO_DATE(date, '%m-%d-%Y') ORDER BY STR_TO_DATE(date, '%m-%d-%Y' ) DESC 限制 1

    【讨论】:

    • STR_TO_DATE(date, '%m-%d-%Y') 无法使用date 上的任何索引来满足查询。
    • @user3406756 我想要这个你访问过这里吗joomusic.info/joosilver.php 我的脚本完成了 80% 就像这样我想获得你在我给定链接上看到的自动当前日期数据
    • @ollie-jones 我想要这个你访问过这里吗 joomusic.info/joosilver.php 我的脚本已经完成了 80% 就像这样只是我想获取自动当前日期数据,你可以在我的给定链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多