如何查询db并从今天的PHP datetime中选择

时间:2016-12-15 14:27:50

标签: php datetime

我将数据插入表'dnt',其中colum date是php datetime。

$date = time();// this was inserted into the db as :1481811673
$today =  time();
"SELECT * FROM `dnt` WHERE 'date' = '$today'";

4 个答案:

答案 0 :(得分:1)

这似乎可以回答您的问题http://www.tomjepson.co.uk/mysql-select-from-table-where-date-today/

tldr;

SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())

答案 1 :(得分:1)

简短而简单:

$stmt = "SELECT * FROM `dnt` WHERE 'date' = '".date('Y-m-d')."'";

使用时间戳:

$now = new DateTime();
$stmt = "SELECT *
FROM table
WHERE date = '".$now->getTimestamp()."'";

详细

以上查询的作用是SELECT所有(*)FROM表格dnt WHERE日期=

PHP中的date()函数根据您输入的参数返回特定日期。Y表示年份,m表示月份和{{1}为了这些日子。因此它将成为d,例如将返回2010-01-01。

date('Y-m-d')'".是为了逃避php函数,因此它不会给你任何语法错误。

答案 2 :(得分:1)

您无法将时间戳与今天的日期进行比较,因为时间戳每秒更改,因此为了比较正确,您需要将存储在db中的时间戳转换为dateformat,然后将该日期与今天的日期进行比较。你可以这样做:

$today = date('Y-m-d'); // date today in format - YYYY-mm-dd
//your query
"SELECT * FROM `dnt` WHERE DATE_FORMAT(FROM_UNIXTIME(dnt.date), '%Y-%m-%d') = '$today'";

我希望它有所帮助

答案 3 :(得分:0)

除了彼得所说的 - 查询不正确。您正在将日期字符串值(单引号之间的date)与时间戳进行比较。

$stmt = "SELECT * FROM `dnt` WHERE `date` = '".date('Y-m-d')."'";