当我从 php 获得的只是日期时,如何从使用时间戳的 db 字段中进行选择?
$date = 2012-10-03;
就像是:
"select value from table where completed_date = $date"
只有 completed_date 的值实际上类似于 "2012-10-03 02:16:10" 我真正想要的是与 $date 同一天的所有值,并且查询几乎忽略时间戳的时间方面对于这个查询。那可能吗?
谢谢!
鉴于您提供的日期已经是有效的 mysql 日期戳,它可以很简单:
SELECT ... WHERE DATE(completed_date)='2012-10-03'
你需要尝试这样的事情,
"select value from table where completed_date like '$date%'"
使用 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 的答案,因为它不需要更改架构。但是,如果这是您通常要查询数据的方式,我建议您在数据库中添加一个日期字段。