Mysql Query在两个日期之间获取事件

时间:2015-04-14 10:22:39

标签: php mysql

我想在两个日期之间获得奖金。

我正在尝试跟踪查询以从mysql获取数据,但它现在正在运行。

$start = $_POST['evnt_date_from'];
$end =  $_POST['evnt_date_to'];
$querystr = " SELECT *  FROM `wp_postmeta`
WHERE`meta_key` = 'date' AND STR_TO_DATE(meta_value, '%d/%m/%Y') between '".date("Y-m-d", strtotime($start))."' AND '".date("Y-m-d", strtotime($end))."' ORDER BY STR_TO_DATE(meta_value, '%d/%m/%Y') ASC" ;

使用此sql查询来获取2个日期之间的帖子,并发布。

需要帮助修复mysql查询。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

可能这更好:

$querystr = "SELECT *, STR_TO_DATE(meta_value, '%d/%m/%Y') dated FROM `wp_postmeta`
            WHERE`meta_key` = 'date' 
            AND meta_value between '".date("Y-m-d", strtotime($start))."' AND '".date("Y-m-d", strtotime($end))."' 
            ORDER BY dated ASC";

您正在尝试将日期(格式d / m / Y)与日期(格式Y-m-d)进行比较

答案 1 :(得分:0)

试试这个:

$querystr = "SELECT *, STR_TO_DATE(meta_value, '%d/%m/%Y') dated FROM `wp_postmeta`
             WHERE `meta_key` = 'date' 
             AND dated between '".date("Y-m-d", strtotime($start))."' AND '".date("Y-m-d", strtotime($end))."' 
             ORDER BY dated ASC";

答案 2 :(得分:0)

你正在使用wordpress然后你应该使用像这样的wordpress查询 这只是一个例子。根据您的需要改变它

<?php
query_posts( array(
'post_type' => 'event',
'event-category' => 'bmx racing'
'posts_per_page' => '-1',
    'orderby' => 'date',
    'order' => 'ASC',
    'meta_query' => array(
            array(
            'key' => 'event-start-date',   //meta key here 
            'value' => array( 2012-05-01, 2012-05-31 ), // enter your dates here 
            'compare' => 'BETWEEN',
            'type' => 'date',
            ),
     ), ) );
  if ( have_posts() ) : while ( have_posts() ) : the_post();
?>