2013-01-06 185 views
0

我有一个litle问题与我的sql查询。比较日期mysql

在数据库中我有一个发票到期日期。

保存为字符串,2013年12月1日

现在我想比较这日期今天。但没有工作。

这是代码。 include_once('config/connect.php');

include_once('config/connect.php');

connectdb();

$name = $_GET['name']; 

$date = date('d-m-Y'); 

$qry = "SELECT *, finished_invoice.date AS invoice_date FROM finished_invoice 
    INNER JOIN customer 
    ON finished_invoice.customer = customer.customer_nr 
     WHERE finished_invoice.user = '".$_SESSION['id']."' 
    AND customer.company_name = '$name' 
    AND expiry_date < '$date' 
    AND finished_invoice.sent > '0' 
    AND finished_invoice.paid = '0' 
    ORDER BY finished_invoice.id DESC" 

如果有人可以帮助我这个。

谢谢。

+0

如果它是一个日期,然后在你的数据库保存为一个日期......它将使这样轻松了许多比较! –

回答

0

,而不是比较的日期对象使用的strtotime()函数来

+0

Thnx帮助我解决问题。 我发现了一种方法来解决这一问题 我改变数据库中的字符串从DD-MM-YYYY到YYYY-MM-DD 和我的数据变种到日期( 'Y-M-d');现在工作正常。 我不得不从datebase更改日期,当我在我的文本中显示它,但很容易 与exolode函数。 –

+0

@NamirDžilić发布您的答案,然后接受它。它将帮助Stackoverflow及其用户。 – nasaa

0

你是比较PHP日期格式d-M-Y与MySQL格式Y-M-d这就是为什么你得到问题的比较结果为字符串。
尝试使用这样的:

SELECT *, finished_invoice.date AS invoice_date FROM finished_invoice 
     INNER JOIN customer 
     ON finished_invoice.customer = customer.customer_nr 
      WHERE finished_invoice.user = '".$_SESSION['id']."' 
     AND customer.company_name = '$name' 
     AND expiry_date < STR_TO_DATE($date, '%d-%m-%Y') 
     AND finished_invoice.sent > '0' 
     AND finished_invoice.paid = '0' 
     ORDER BY finished_invoice.id DESC 
+0

我在数据库中的日期被保存为字符串12-01-2013我的日期也是从$ date = date('d-m-Y'); –