数据库日期=今天的日期

时间:2014-09-12 04:00:59

标签: php mysql database

我正在尝试从今天插入的mySQL数据库中选择数据,但是此查询正在运行,但它返回0结果。我的数据库中有一行应该返回。任何帮助是极大的赞赏!谢谢!

$ sql =“SELECT * FROM main_table WHERE DATE(date)= CURDATE()”;

3 个答案:

答案 0 :(得分:3)

我建议,除非您需要毫秒信息,否则您始终将日期信息存储在Unix Timestamp中。存储更轻,因为它只是一个整数值,检索速度更快,并且是通用的,因为它总是基于UTC。

特别是在PHP中,将日期信息转换为(time()strtotime)和(date())unix时间戳非常简单。这样,无论您的用户位于何处,您都可以随时在当地时间显示正确的信息。

在你的情况下,你可以计算今天上午0点到今天中午12点的de时间戳,然后在MySQL中查找它:

$sql = "SELECT * FROM main_table WHERE `date`>{$dayStart}" AND `date`<{$dayEnd};

答案 1 :(得分:2)

这实际上取决于datemain_table列的实际数据类型,该列的定义方式以及该列中存储的内容。

如果该列是MySQL DATE数据类型,那么

    WHERE date = DATE(NOW())

如果该列是DATETIMETIMESTAMP数据类型,那么

    WHERE date >= DATE(NOW()) AND date < DATE(NOW()) + INTERVAL 1 DAY

如果该列是CHAR或VARCHAR,那么它取决于存储的实际值。如果以'mm / dd / yyyy'格式存储 - 即两位数的月份和两位数的日期(带前导零)和四位数的年份,用斜线分隔 - 那么

    WHERE date = DATE_FORMAT(NOW(),'%m/%d/%Y')

答案 2 :(得分:0)

要么你可以使用直接的mysql日期函数或php日期函数..现在我正在使用php函数

$today = date('Y-m-d'); //To get the Current date as 2014-10-12

$sql = "SELECT * FROM main_table WHERE `date` = '$today'";

由于您的列名是date(与sql中的DATE函数相同),请使用date ..``