当我从php获得的所有内容都是日期时,如何从使用时间戳的db字段中进行选择?
$date = 2012-10-03;
类似的东西:
"select value from table where completed_date = $date"
只有completed_date的值真的像“2012-10-03 02:16:10”,我真正想要的是与$ date同一天的所有值以及查询几乎忽略了时间方面此查询的时间戳。那可能吗?
谢谢!
答案 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的答案,因为它不需要架构更改。但是,我建议只在数据库中添加一个日期字段,如果这是您通常要查询数据的方式。