如何将datetime对象与日期对象进行比较

时间:2014-01-22 08:57:37

标签: php mysql sql datetime select

我的桌子有日期时间栏

我的桌子是

ID time
1  2014-01-30 12:00:00
2  2014-01-30 13:00:00
3  2014-02-01 14:00:00

我有Datetime对象

2014-01-30 15:00:00

我喜欢拿起那些具有相同日期'的行。作为Datetime对象。

所以在这种情况下。

我想选择第1行和第2行

我不确定如何将Datetime转换为date对象并比较' date'在mysql中

我该怎么做?

4 个答案:

答案 0 :(得分:3)

使用DATE功能转换datetime

中的date对象
SELECT * 
FROM tableA a 
WHERE DATE(a.time) = DATE('2014-01-30 15:00:00');

答案 1 :(得分:1)

这会更好,因为查询可以使用索引:

SELECT *
FROM date_table
WHERE date_column >= '2014-01-30' AND date_column < '2014-01-30' + INTERVAL 1 DAY

使用PHP函数格式化日期字符串,使其不包含如下所示的时间:

DateTime::createFromFormat("Y-m-d H:i:s", "2014-01-30 15:00:00")->format("Y-m-d");

答案 2 :(得分:0)

从你的表中选择*,其中时间&gt; ='2014-01-30'和时间&lt; '2014-01-31'

您可以使用MYSQL提供的Date()函数,但这会增加查询的开销

有关详细信息,请参阅http://willem.stuursma.name/2009/01/09/mysql-performance-with-date-functions/

答案 3 :(得分:0)

$ date是DateTime对象 由于您有一个DateTime object,因此您应该在查询中使用它之前对其进行转换。

$dateYMD = $date->format('Y-m-d');
mysql_query("SELECT * FROM `table` WHERE DATE(`time`) = '$dateYMD'");