php - MySQL FROM_UNIXTIME

标签 php mysql sql

我有 2 个格式化为 DATETIME 的 PHP 变量,但该列采用 UNIX 时间戳。我如何正确地对它们进行 BETWEEN 操作?

$date_from$date_to 采用 DATETIME 格式。 dateline 存储为 UNIX 时间戳。

以下内容无效:

if($date_from != "" && $date_to != "") {
    $result_pag_num = mysql_query("SELECT COUNT(*) AS count FROM messages WHERE (folder = '$folder' AND username = '$username' AND FROM_UNIXTIME(dateline) BETWEEN '$date_from' AND '$date_to')");
} else {
    $result_pag_num = mysql_query("SELECT COUNT(*) AS count FROM messages WHERE (folder = '$folder' AND username = '$username')");
}

编辑:所有答案都很好。我接受了回复禁食的人。这个错误是我自己的错。

最佳答案

您可能希望将查询更改为

... AND dateline BETWEEN UNIX_TIMESTAMP('$date_from') AND UNIX_TIMESTAMP('$date_to')

这样MySQL就可以在日期线字段上使用索引。您的版本强制它在进行比较之前将每个日期行字段转换为日期时间值,从而无法使用索引。

否则,查询看起来不错。您确定 $date_from$date_to 格式正确,并且存在适合查询中所有子句的记录吗?

关于php - MySQL FROM_UNIXTIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5277589/

相关文章:

mysql - 在 Windows 8 中使用 .NET 模拟 MySql 的 PASSWORD() 加密

mysql - 批量插入 - 根据另一列的已知值创建一些列的值

sql - 在 SQL 输出中插入双引号

MySQL 多个 Like 条件并在匹配时添加到计数器

php - ACL ROLE_ADMIN 不起作用

Python pyodbc 游标与数据库游标

mysql - 如何在mysql查询中获取上个月(不是最近30天)的记录

php - 如何将 SQL 查询转换为 CakePHP?

php - Softaculous如何在cPanel中创建MySQL数据库、用户和user->db映射?

javascript - Laravel 5 中有 2 个日期选择器,但仅保存最后一个值