簡體   English   中英

MySQL按日期排序無法正常工作

[英]Mysql sort by date not working as expected

我正在使用php將記錄從我的mysql數據庫中拉出,並希望通過稱為expdate的數據庫字段對它們進行排序。

提醒日期以varchar格式存儲在表中,格式為17-04-12。

我正在使用以下代碼將所有記錄拉出並按expdate列對其進行排序。

    <table border="0" style="text-align:left;">
      <tr style="text-align:left;">
        <th style="text-align:left;" width="200px"  scope="col">Name</th>
        <th style="text-align:left;" width="200px"  scope="col">Email</th>
      <th style="text-align:left;" width="200px" scope="col">Telephone</th>
      <th style="text-align:left;" width="200px" scope="col">Current Cover Expires</th>
      </tr>
    <?php
    $today = date("d-m-y");
    $result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe ORDER BY expdate")or die(mysql_error());

    echo '<tr style="text-align:left;">';
    while($row = mysql_fetch_array($result))
      {
        echo '<td style="text-align:left;">';  
      echo $row['name'];
      echo '</td>'; 
      echo '<td style="text-align:left;">'; 
      echo $row['email'];
         echo '</td>'; 
    echo '<td style="text-align:left;">'; 
      echo $row['tel'];
         echo '</td>'; 
     echo '<td style="text-align:left;">'; 
      echo $row['expdate'];
        echo '</td>'; 
      echo "</tr>";
      }

      ?>


    </table>

問題是,列被隨機地排序,它輸出記錄並按此日期順序對其進行排序:

08-07-12
17-05-12
17-05-13

嘗試

order by STR_TO_DATE(expdate, '%d-%m-%y')

(下一次使用真正的日期格式...作為日期數據;))

將日期以正確的日期格式存儲在MySQL中。 最好重新排列日期選擇器產生的格式,然后在MySQL內部正確存儲重新排列的日期。 這應該可以解決您的問題。

需要使用數據轉換:

$today  = date("d-m-y");
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe ORDER BY  STR_TO_DATE(expdate,'%d-%m-%Y')") or die(mysql_error());

好吧,這井井有條,我可以確認2008年7月12日在2017年5月12日之前,也在2017年5月13日之前...

我猜你必須指定一個特定的格式到你選擇的日期

  • expdate是一個VARCHAR:就像其他成員所說的那樣,請使用STR_TO_DATE(expdate,'%d /%m /%Y')
  • expdate是DATE:使用DATE_FORMAT(expdate,'%d /%m /%Y')

嘗試這個

$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe ORDER BY expdate DESC")or die(mysql_error());

使用ASC =提升

使用DESC =后代

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM