title: MySql order by related with today's date
body: <p>I have a date column and I am using order by clause.</p>
  
  <p>I want to show the records near to today's date at top and then all records with the past at bottom.</p>
  
  <p>I want to do this with single query.</p>
  
  <p>I tried this</p>
  
  <pre><code>SELECT *, DATEDIFF(`date`, CURDATE()) AS diff  FROM `post` order by diff
  </code></pre>
  
  <p>Problem with this query is this will show records with past first and if I use descending then the records far from today will be on top.</p>
  
  <p>How I can achieve this?</p>
  
  <p>Any help will be appreciated. </p>