我试图选择2个日期之间的所有日期。在数据库中,我有unix时间戳格式的记录,而我的date_ini和date_final变量是日期格式(00-00-00 00:00:00)
$msgs = mysql_query("SELECT date_time, from_user_name, message
FROM message_log
WHERE date_time BETWEEN '$log_ini' AND '$log_fim'
AND (from_user_name = '$usuario' OR from_user_name = '$atendente')")or die(mysql_error());
它返回null。 我确定有与select相匹配的记录。 我还检查了date_default_timezone_set并将其设置为同一时间到服务器。 我知道这是一个愚蠢的,但我真的很沮丧!我已经花了好几个小时尝试一切,FROM_UNIXTIME功能,没有coman,coman,<>操作员,之前的变量strotime,没有任何作用......有人可以指出错误在哪里?非常感谢!
修改
我遇到了问题,它是date_time fiels,实际上并不是unixtimestamp,而是unix时间+3位数。抱歉,是我的错误,答案很好。我打开另一个问题,现在就找到如何在这个表格中处理这个问题。非常感谢!
答案 0 :(得分:1)
好的,你的date_time字段是unix_timestamp?这只是一个整数,你迫使MySQL在那里进行'之间'操作--MySQL没有原生的“unix时间戳”格式,它只是一个转换整数的便利函数< - > datetime
要使where子句起作用,您需要
WHERE FROM_UNIXTIME(date_time) BETWEEN '...' AND '...'
... or ...
WHERE date_time BETWEEN UNIX_TIMESTAMP(...) AND UNIX_TIMESTAMP(...)
所以你正确地将苹果与苹果进行比较,而不是将苹果与橘子进行比较。