1

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

$date = 2012-10-03;

就像是:

"select value from table where completed_date = $date" 

只有 completed_date 的值实际上类似于 "2012-10-03 02:16:10" 我真正想要的是与 $date 同一天的所有值,并且查询几乎忽略时间戳的时间方面对于这个查询。那可能吗?

谢谢!

4

6 回答 6

2

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

SELECT ... WHERE DATE(completed_date)='2012-10-03'
于 2012-10-04T19:32:03.867 回答
1

你需要尝试这样的事情,

"select value from table where completed_date like '$date%'" 
于 2012-10-04T19:02:08.317 回答
0

使用 DATE_FORMAT 格式化 mysql 日期:

"select value from table where DATE_FORMAT(completed_date,'%Y-%m-%d') = $date" 
于 2012-10-04T19:01:53.983 回答
0

如果您的数据库字段是 Unix 时间戳,您将在此处FROM_UNIXTIME使用详细信息。

如果您的数据库字段 ( col) 是datetime类型,您将SELECT ... WHERE col LIKE '2012-10-03%'.

如果您的数据库字段 ( col) 是date类型,您将SELECT ... WHERE col = '2012-10-03'.

于 2012-10-04T19:02:42.327 回答
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'));
于 2012-10-04T19:04:14.513 回答
0

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

于 2012-10-04T19:09:44.560 回答