首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将今天的日期与数据库中列出的日期进行比较

问将今天的日期与数据库中列出的日期进行比较
EN

Stack Overflow用户
提问于 2012-05-29 22:06:55
回答 5查看 230关注 0票数 0

我正在使用mysql和php从mysql数据库中拉出等于今天日期的所有用户。我遇到的问题是,每当我运行下面的代码时,我都会得到一个错误。根据错误的外观,似乎与年份有关,或者可能它不喜欢其中的圆点,但我不确定?

代码语言:javascript
复制
<?php
$today = date("d.m.y");
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
 WHERE date=$today")or die(mysql_error());

while($row = mysql_fetch_array($result))
  {
  echo $row['name'] . " " . $row['email']. " " . $row['date'];
 echo "<br />";
  }

  ?>

这是它抛出的错误:

代码语言:javascript
复制
You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near '.12' at line 2
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-29 22:09:26

您必须在日期字符串两边添加引号:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE date='$today'")or die(mysql_error());
票数 1
EN

Stack Overflow用户

发布于 2012-05-29 22:10:11

您的$today变量需要用引号括起来。还需要在date列名上加上反标记,因为它是保留的。

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
      WHERE `date`='$today'")or die(mysql_error());
票数 1
EN

Stack Overflow用户

发布于 2012-05-29 22:11:16

首先,应该将$today作为字符串添加到SQL查询中:

代码语言:javascript
复制
mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = '$today'");

date是SQL保留字,因此必须用反引号进行转义...

但我使用MySQL本机函数和常量如NOW()、CURRENT_TIMESTAMP、SYSDATE等重新注释...

代码语言:javascript
复制
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = NOW()
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` < NOW() - INTERVAL '2' DAYS
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` > NOW() + INTERVAL '5' HOURS

等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10800819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档