我将数据插入表'dnt',其中colum date
是php datetime。
$date = time();// this was inserted into the db as :1481811673
$today = time();
"SELECT * FROM `dnt` WHERE 'date' = '$today'";
答案 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')."'";