您的查询错误,因为TIMESTAMPDIFF的第三个参数不正确。
您应该使用meta\\u value而不是SELECT meta\\u value。
SELECT user_id FROM wp_usermeta WHERE meta_key = \'wp_wp_kc_last_active_time\' AND TIMESTAMPDIFF( second, now(), TIMESTAMP(meta_value) ) > 5184000;
试试看结果是否开始正确。
我刚检查了一下mySQL Date Function Docs 你似乎做错了。
请尝试以下操作:
SELECT user_id FROM wp_usermeta WHERE meta_key = \'wp_wp_kc_last_active_time\' AND TIMESTAMPDIFF( MONTH, NOW(), FROM_UNIXTIME(meta_value) ) > 2;
或者也许。。。
global $wpdb;
$query = <<<SQL
SELECT user_id
FROM {$wpdb->usermeta}
WHERE
meta_key = \'wp_wp_kc_last_active_time\'
AND DATEDIFF( NOW(), FROM_UNIXTIME( meta_value ) ) > 60
SQL;
$query = $wpdb->prepare( $query );
这应该会聚集正确的用户。如果没有,请在不使用datediff语句的情况下进行尝试,看看是否返回了任何内容。如果不是,那么meta\\u键有问题(例如,它是真的wp\\u wp\\u…还是仅仅wp\\u kc\\u…)