就我個人而言,我喜歡在UNIX時間戳格式中使用MySQL中的整數數據類型進行日期存儲。我把這個整數的所有處理都留給PHP。保持表格和查詢儘可能簡單一直爲我服務。主要是,在我寫的代碼中,日期對他們做了某種計算。這一切都在PHP端完成,並始終以UNIX時間戳格式完成。使用UNIX時間戳格式以外的任何其他方式存儲或檢索日期只是意味着錯誤進入另一個步驟,並使查詢更少模塊化。如何格式化日期最好保留到顯示前的最後一分鐘。這只是我的看法,但除非在極端情況下無法在提取之後處理DB值,否則日期不應格式化爲SQL端。
一個簡單的例子:
<?php
$date = now();
$dueDate = $date + 60*60*24*7; // One week from now
$sqlInsert = "INSERT INTO reports SET `dueDate` = $date";
$resInsert = mysql_query($sqlInsert);
$sqlSelect = "SELECT `dueDate` FROM reports";
$resSelect = mysql_query($sqlSelect);
$rowSelect = mysql_fetch_array($resSelect);
$DB_dueDate = $rowSelect['dueDate'];
$daysUntilDue = ($DB_dueDate - now())/60*60*24;
$formattedDueDate = date("j F, Y", $DB_dueDate);
?>
The report is due on <?=$formattedDueDate?>. That is <?=$daysUntilDue?> from now.
謝謝。如何將SET lc_time_names插入到下一個mysqli查詢中? \t \t \t $ sql ='SELECT personID,name,DATE_FORMAT(persons.birthdate,「%d de%M,%Y」),birthplace,countryID FROM persons where personID =?'; – Jonathan 2009-04-20 16:19:59