我在這裏有這段代碼,它允許我檢索一些日期。 我有這樣一個保守的今天日期:比較php中的兩個日期
$time = date("d-m-Y");
我的日期字段在數據庫中一個varchar,它的格式爲:d-M-Y
我怎麼能對它們進行比較?我用過這個,但它不起作用!
SELECT DATE_FORMAT('date','%d-%m-%Y'), id, WHERE date>$time;
感謝您的幫助!
我在這裏有這段代碼,它允許我檢索一些日期。 我有這樣一個保守的今天日期:比較php中的兩個日期
$time = date("d-m-Y");
我的日期字段在數據庫中一個varchar,它的格式爲:d-M-Y
我怎麼能對它們進行比較?我用過這個,但它不起作用!
SELECT DATE_FORMAT('date','%d-%m-%Y'), id, WHERE date>$time;
感謝您的幫助!
如果您想通過從數據庫中提取來比較日期,那麼我會建議您以日期格式存儲,而不是使用varchar格式。
但現在你可以做如下:
首次使用的strtotime您的字符串轉換爲unix時間戳。像:
$time = strtotime($date);
然後你使用這個時間戳來計算你想要的任何格式的日期。爲了得到你想要的格式,你可以這樣做:
$newDate = date('d-m-y', $time);
嘗試在查詢中使用STR_TO_DATE函數首先將VARCHAR
轉換爲DATETIME
值。
您與原值構建WHERE子句,嘗試這樣的事情:
SELECT DATE_FORMAT('date','%d-%m-%Y') AS compare_date, `id` FROM `table_name` WHERE DATE_FORMAT('date','%d-%m-%Y') > $time;
要知道,這是一個字符串比較,所以這將是最好的一輪做它的其他方式,例如%Y-%m-%d
或者使用STR_TO_DATE
函數作爲@Micah Carrick的建議。
您在id
之後還有一個額外的,
,並且您還需要在查詢中使用from
子句。
SELECT DATE_FORMAT('date','%d-%m-%Y') as new_date, id from your_table WHERE new_date > $time;
This Example Is Working 100% try Now
$exp_date = "2006-01-16";
$todays_date = date("Y-m-d");
$today = strtotime($todays_date);
$expiration_date = strtotime($exp_date);
if ($expiration_date > $today)
{
$valid = "yes";
}
else
{
$valid = "no";
}
這時候你存儲** DATE你會得到什麼**的** ** VARCHAR ......做個聰明,重建該列爲「日期」類型。 – w00
是的,這意味着改變很多東西,然後... .../ – Tao
http://stackoverflow.com/questions/3651985/compare-dates-in-mysql http://stackoverflow.com/questions/1058031/mysql-compare-two-datetime-fields – czachor