$wpdb prepare issue with mysql DATE_FORMAT

Today, I have a issue in $wpdb.

I used

$result = $wpdb->get_var( 
  $wpdb->prepare(
    "SELECT DATE_FORMAT(report_date, '%d-%m-%Y') FROM table WHERE report_id = %d",
     $report_id 
   )
);

The above code not works because of %d in DATE_FORMAT. How i solved this issue in wordpress

1 Answer
1

From the Codex page for the WPDB class:

[…] the prepare method […] supports both a sprintf()-like and vsprintf()-like syntax.

Having a look at PHP’s documentation for sprintf():

##Example 6

   // notice the double %%, this prints a literal '%' character

So you can use

$result = $wpdb->get_var( 
  $wpdb->prepare(
    "SELECT DATE_FORMAT(report_date, '%%d-%%m-%%Y') FROM table WHERE report_id = %d",
     $report_id 
   )
);

for your purposes.

Leave a Comment