2016-10-18 4 views
0

т.е.Fetch записи от текущей даты до следующего целого месяца (до последнего дня следующего месяца) тузд

Пусть текущая дата 18/10/2016, то я хочу, чтобы извлечь все записи из 18/10/206 до 30/11/2016

Это сценарий, пожалуйста, помогите мне получить эффективный способ получить это из одного запроса mysql.

+0

Что вы подразумеваете под «следующим целым месяцем»? Следующие 30 дней или Следующий месяц 1-28/29/30/31? – Irvin

+0

'WHERE yourDate BETWEEN' –

+1

с текущей даты до последней даты в следующем месяце, как я объяснил на примере, вы не видели? – Jigar7521

ответ

3

Вы можете использовать BETWEEN, чтобы сравнить даты.

С помощью службы LAST_DAY(date) функции.

SELECT 
* 
FROM your_table 
WHERE your_date BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH) 

Примечание: Функция

MySQL LAST_DAY()

LAST_DAY() возвращает последний день соответствующего месяца для даты или даты и времени значения. Если значение даты или даты недействительно, функция возвращает NULL.

+0

Извините, но это дает синтаксическую ошибку. – Jigar7521

+0

Просьба поделиться запросом, который вы попробовали, с ошибкой, с которой вы столкнулись. – 1000111

+0

Это ошибка: SQL запрос: Документация SELECT * FROM members_detail Дата рождения МЕЖДУ CurDate() И LAST_DAY (CURDATE() + ИНТЕРВАЛ 1 МЕСЯЦ) LIMIT 0, 25 MySQL сказал: Документация # 1064 - Вы ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «BETWEEN CURDATE() И LAST_DAY (CURDATE() + INTERVAL 1 МЕСЯЦ) LIMIT 0, 25 'в строке 1 – Jigar7521

1
$time = strtotime(date('Y-m-d')); 
$final = date("Y-m-d", strtotime("+1 month", $time)); 
$nextMonth= date('t/m/Y',strtotime($final)); 
$now=date('d/m/Y'); 
$sql="select * from table where date>='".$now.' and date<=$nextMonth"; 
$res=mysql_query($sql); 
+0

Первым приоритетом было использование только mysql, если это возможно, в противном случае мы можем использовать php, но спасибо приятелю :) – Jigar7521

Смежные вопросы