My query is as below $querydetails = " SELECT wposts.* FROM $wpdb->posts wposts INNER JOIN $wpdb->postmeta wpostmeta ON wposts.ID = wpostmeta.post_id INNER JOIN $wpdb->term_relationships yprelation ON yprelation.object_id = wposts.ID INNER JOIN $wpdb->term_taxonomy wptaxonomy ON wptaxonomy.term_taxonomy_id = yprelation.term_taxonomy_id INNER JOIN $wpdb->terms wpterms ON wpterms.term_id = wptaxonomy.term_id WHERE wpostmeta.meta_key = 'event_date' AND STR_TO_DATE(wpostmeta.meta_value, '%d-%m-%Y %H:%i:%s') >= NOW() AND (wposts.post_status = 'publish' || wposts.post_status = 'pending' || wposts.post_status = 'future') AND wposts.post_type = 'events' AND (wpterms.term_id = 5 OR wptaxonomy.parent = 5) ORDER BY STR_TO_DATE(wpostmeta.meta_value, '%d-%m-%Y %H:%i') LIMIT 0,10"; I want to convert this query into wp_query, I have tried below code $args = array( 'post_type' => 'events', 'post_status' => array('publish', 'pending', 'future'), 'orderby' => 'meta_value', 'order' => 'ASC', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'event_date', 'value' => date('Y-m-d H:i:s'), 'type' => 'date', 'compare' => '>=' ) ), 'tax_query' => array( 'relation' => 'and', array( 'taxonomy' => 'ad_cat', 'field' => 'slug', 'terms' => 'event-2' ) ) ); $query = new WP_Query($args); echo "Last SQL-Query: {$query->request}"; retuns below result SELECT SQL_CALC_FOUND_ROWS yp_posts.ID FROM yp_posts INNER JOIN yp_term_relationships ON (yp_posts.ID = yp_term_relationships.object_id) INNER JOIN yp_postmeta ON (yp_posts.ID = yp_postmeta.post_id) WHERE 1=1 AND ( yp_term_relationships.term_taxonomy_id IN (581,541,547,544,545,546,548,550,572,585,599,607,616,619) ) AND yp_posts.post_type = 'events' AND ((yp_posts.post_status = 'publish' OR yp_posts.post_status = 'future' OR yp_posts.post_status = 'pending')) AND ( (yp_postmeta.meta_key = 'event_date' AND CAST(yp_postmeta.meta_value AS DATE) >= '2014-12-24 04:30:01') ) GROUP BY yp_posts.ID ORDER BY yp_posts.post_date ASC LIMIT 0, 10 but did not get expected results only issue is it return `AND CAST(yp_postmeta.meta_value AS DATE) >= '2014-12-24 04:30:01') ) ` instead of `AND STR_TO_DATE(wpostmeta.meta_value, '%d-%m-%Y %H:%i:%s') >= NOW()` please help