2014-01-05 78 views
-1

對於實例更改mysql的列數據格式,並進行查詢

select date_format(date(credit_date),'%Y-%m-%d') from product where date(credit_date) >= date '2012-11-02' and date(credit_date) <= date '2013-11-02'

如何獲取列從日期1日期2

和DB結構

  +-----------------------------------------+ 
      | credit_date        | 
      +-----------------------------------------+ 
      | 21/09/2013        | 
      | 22/09/2013        | 
      | 23/09/2013        | 
      | 24/09/2013        | 
      | 25/09/2013        | 
      | 26/09/2013        | 
      | 27/09/2013        | 
      | 28/09/2013        | 
      +-----------------------------------------+ 
+1

我不明白的問題。什麼是credit_date的數據類型? –

回答

0

它看起來像你的CREDIT_DATE是VARCHAR類型與另一個日期格式,如果是的話試試這個:

select date_format(str_to_date(credit_date,'%d/%m/%Y'), '%Y-%m-%d') as dt 
    from product 
where str_to_date(credit_date,'%d/%m/%Y') >= '2012-11-02' 
    and str_to_date(credit_date,'%d/%m/%Y') <= '2013-11-02' 

MySQL的默認格式爲Y-M-d你不需要把它轉換在where子句。除非你的數據庫被配置爲具有特定的格式。由於您的credit_date似乎是一個varchar,因此您必須先將其轉換爲日期,然後對其進行測試。

見這裏的小提琴:http://sqlfiddle.com/#!2/8b379/9

+1

非常感謝你豪爾赫坎波斯和你的答案是非常幫助全.... –