使CURDATE()识别Current_Time()

时间:2014-08-19 作者:Chris Charlwood

我试图让这个查询从今天起30天内提取一个有生日的用户列表。此查询在WordPress中按照以下方式工作,但不包括那些生日与今天相同的人。我相信CURDATE() 函数使用服务器时间,而不是在设置/常规区域中调整WordPress时区。有什么解决办法吗?

$querystr = "
SELECT * FROM " . $wpdb->prefix . "usermeta
WHERE meta_key=\'bday_unix\'
AND DATE_ADD( 
    from_unixtime(meta_value), INTERVAL YEAR( CURDATE() ) 
    - YEAR( from_unixtime( meta_value ) ) YEAR 
)
BETWEEN CURDATE() AND DATE_ADD( CURDATE(), INTERVAL 30 DAY )";

1 个回复
SO网友:Otto

$current_time = current_time(\'mysql\');

$querystr = "
SELECT * FROM {$wpdb->prefix}usermeta
WHERE meta_key=\'bday_unix\'
AND DATE_ADD( 
    from_unixtime(meta_value), INTERVAL YEAR( \'{$current_time}\' ) 
    - YEAR( from_unixtime( meta_value ) ) YEAR 
)
BETWEEN \'{$current_time}\' AND DATE_ADD( \'{$current_time}\', INTERVAL 30 DAY )";
我想应该有用。

结束

相关推荐

MySQL_REAL_ESPRY_STRING的替代方案

我有一个WordPress插件,我需要查看数据库中是否存在某个标题。两年来,该代码运行良好:$myposttitle= $wpdb->get_results( \"select post_title from $wpdb->posts where post_title like \'%\". mysql_real_escape_string($myTitle) . \"%\'\" ); 但是,使用php 5.5。和WP 3.9.1,这会导致错误,因为m