2013-04-16 115 views
0

我有以下的SQL查詢,我想以英國(dd/mm/yyyy)格式輸出ageOnLastSeptember日期。任何人都可以告訴我如何實現這一目標?將SQL日期格式化爲英國格式

$sql="select (if(month(now()) < 9, year(now()) - 1, year(now())) - year(dob) - if(month(dob)<9, 0, 1) ) as ageOnLastSeptember,first_name,last_name,dob,school,contact_no,family_id,contact_id from members_family where contact_id = '$contact_id' "; 

我嘗試以下,但它沒有采取任何行動

$sql="select date_format((if(month(now()) < 9, year(now()) - 1, year(now())) - year(dob) - if(month(dob)<9, 0, 1) ), '%d/%m/%Y') as ageOnLastSeptember,first_name,last_name,dob,school,contact_no,family_id,contact_id from members_family where contact_id = '$contact_id' "; 
+0

什麼是數據庫系統? –

+0

now()表示mysql我認爲。 –

+0

這是MySQL @Damien_The_Unbeliever – user2281899

回答

2

我認爲使用PHP格式化日期會比使用MySQL格式化更容易和更好。檢索從MySQL中的數據後,您可以使用PHP像

$date = date("d/m/Y", strtotime('2002-05-18')); 

格式輸出將是:18/05/2002

所以你的PHP代碼將是:

<td>". date("d/m/Y", strtotime($rows['dob'])) ."</td> 
關於PHP日期和

更多信息格式可以在這裏找到:http://php.net/manual/en/function.date.php

希望這可以幫助你:)

+0

Briliant!謝謝@Sabari – user2281899

2

你並不需要做的在數據庫級別的格式。如果您將日期存儲爲日期(正確的方式),只需獲取記錄並將其發送給客戶端即可。格式化應該在您用來顯示這些日期的控件上完成。

+0

謝謝@danish。我試圖在PHP中顯示它,並掙扎。我在這一切都是新手。我以前的帖子是不正確的。這是我試圖格式化的DOB字段。這是我的PHP代碼 -​​「。$ rows ['dob']。」 – user2281899

+0

對不起,我沒有做PHP。我建議你將你的帖子標記爲PHP,並等待有人幫助你用PHP格式化日期。 – danish

+0

@ user2281899當前的MySQL輸出是什麼?它以何種格式出現?你可以添加, – Sabari

0

不知道如何將年齡格式化爲DD/MM/YYYY日期。似乎不符合邏輯

爲了讓日齡你可以使用類似下面的

SELECT FLOOR(NOW(), DATE_ADD(dob, INTERVAL (ABS(DATEDIFF(CONCAT(YEAR(DATE_ADD(NOW(), INTERVAL -8 MONTH)),':09:01'), NOW())) * -1) DAY)) AS Age 
FROM members_family 
WHERE contact_id = '$contact_id' 

,可能是定製給年齡在幾年(變得有點棘手準確100%閏年,特別是如果你想每隔100年應付一次不是閏年,而是每隔400年閏年)

相關問題