2017-06-02 48 views
1

在我的表中的日期格式這樣Wednesday 17th May 2017Saturday 27th May 2017,我想將其轉換爲這樣的事情17/05/201727/05/2017和ORDER BY MyDate格式的日期可能2017年17/05/2017格式SQL

我嘗試過很多不同的方法,並花了很多時間做了大量的研究,但沒有運氣。

$sql="SELECT * FROM table 
     WHERE 1 = CASE WHEN deliver = 'Completed' THEN 0 ELSE order = '$order' END 
     ORDER BY STR_TO_DATE(MyDate,"d-m-Y") ASC"; 

$res=mysql_query($sql) or die(mysql_error()); 
while($row=mysql_fetch_array($res)) 
{ 
    echo $row['MyDate']; 
} 

如果有人能請求幫助,我將非常感激。

+0

標籤與正在使用的數據庫你的問題。 –

+0

mysql_ *已被棄用嘗試使用mysqli_ * – JYoThI

+0

感謝您的幫助@GordonLinoff –

回答

1

將字符串轉換爲datetime時,您需要使用正確的格式值

SELECT *, 
     -- convert to datetime and then format accordingly 
     DATE_FORMAT(STR_TO_DATE(mydate, '%W %D %M %Y'), '%m/%d/%Y') formatted_date 
    FROM table1 
-- convert to datetime 
ORDER BY STR_TO_DATE(mydate, '%W %D %M %Y'); 
  • %W - 週日名稱(Sunday..Saturday)
  • %d - 英語後綴的一個月中的天(第0,第1,第2,第3,...)
  • %M - 月份名稱(January..December)
  • %Y - 年,數字,四個數字

輸出示例:

 
+------+-------------------------+----------------+ 
| id | mydate     | formatted_date | 
+------+-------------------------+----------------+ 
| 2 | Wednesday 17th May 2017 | 05/17/2017  | 
| 1 | Saturday 27th May 2017 | 05/27/2017  | 
+------+-------------------------+----------------+ 

這裏是一個dbfidlle演示

+0

您不必因爲你的回答不正確而給我-1。請幫助@peterm解決這個問題。 –

+0

@ R.Shamon格式化問題中的值可能有點誤導。我更新了它以使事情更清晰。但看起來現在已經解決了。我很高興解決方案的幫助。 – peterm

+0

非常感謝@peterm。 –