php date和mysql时间戳比较

时间:2012-10-04 18:59:50

标签: php mysql

当我从php获得的所有内容都是日期时,如何从使用时间戳的db字段中进行选择?

$date = 2012-10-03;

类似的东西:

"select value from table where completed_date = $date" 

只有completed_date的值真的像“2012-10-03 02:16:10”,我真正想要的是与$ date同一天的所有值以及查询几乎忽略了时间方面此查询的时间戳。那可能吗?

谢谢!

6 个答案:

答案 0 :(得分:1)

你需要尝试这样的事情,

"select value from table where completed_date like '$date%'" 

答案 1 :(得分:1)

鉴于您提供的日期已经是有效的mysql日期戳,它可以简单如下:

SELECT ... WHERE DATE(completed_date)='2012-10-03'

答案 2 :(得分:0)

使用DATE_FORMAT格式化mysql日期:

"select value from table where DATE_FORMAT(completed_date,'%Y-%m-%d') = $date" 

答案 3 :(得分:0)

如果您的数据库字段是Unix时间戳,则可以使用FROM_UNIXTIME详细here

如果您的数据库字段(col)属于datetime类型,则可以SELECT ... WHERE col LIKE '2012-10-03%'

如果您的数据库字段(col)属于date类型,则可以SELECT ... WHERE col = '2012-10-03'

答案 4 :(得分:0)

如果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'));

答案 5 :(得分:0)

我喜欢coder1984的答案,因为它不需要架构更改。但是,我建议只在数据库中添加一个日期字段,如果这是您通常要查询数据的方式。