簡體   English   中英

php date和mysql時間戳比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM