我的桌子有日期时间栏
我的桌子是
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中
我该怎么做?
答案 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'");