[英]php date and mysql timestamp comparison
當我從php獲取的所有內容都是日期時,如何從使用時間戳的db字段中進行選擇?
$date = 2012-10-03;
就像是:
"select value from table where completed_date = $date"
只有completed_date的值真的像“2012-10-03 02:16:10”,我真正想要的是所有與$ date同日的值,並且查詢幾乎忽略了時間戳的時間方面對於此查詢。 那可能嗎?
謝謝!
你需要嘗試這樣的事情,
"select value from table where completed_date like '$date%'"
鑒於您提供的日期已經是一個有效的mysql日期戳,它可以很簡單:
SELECT ... WHERE DATE(completed_date)='2012-10-03'
使用DATE_FORMAT格式化mysql日期:
"select value from table where DATE_FORMAT(completed_date,'%Y-%m-%d') = $date"
如果你的數據庫字段是一個Unix時間戳,你會用FROM_UNIXTIME
詳細這里 。
如果您的數據庫字段( col
)是datetime
類型,那么您將SELECT ... WHERE col LIKE '2012-10-03%'
。
如果您的數據庫字段( col
)是date
類型,那么您將SELECT ... WHERE col = '2012-10-03'
。
如果completed_date
是時間戳字段,而不是varchar,那么你可以這樣做:
"SELECT value FROM table WHERE completed_date>=? AND completed_date<?"
並綁定參數:
$date="2012-10-03";
$start=date("Y-m-d G:i:s",strtotime($date));
$end =date("Y-m-d G:i:s",strtotime($date.' +1day'));
我喜歡coder1984的答案,因為它不需要架構更改。 但是,我建議只在數據庫中添加一個日期字段,如果這是您通常要查詢數據的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.