2016-08-19 3 views
-1

У меня есть таблица, в которой есть столбец datetime с именем: completed_date (2016-05-27 04:08:53). Я хотел бы выделить все данные для этого в текущем месяце, игнорируя время. Что-то вроде этого:Выберите месяц из столбца datetime

$query = mysqli_query($dbc, " select * from eob_posting where 
    completed_date=DATE(NOW())"); 

Как я могу удалить время так, что положение где considere только дата?

+0

Почему вы используете 'DATE()', если хотите месяц? – Barmar

ответ

1

Даже короче, чем другие ответы :-)

Обратите внимание, что даты и времени в основном также строка форме «2016-01-01 12:34:56», поэтому вы можете просто:

> SELECT LEFT(NOW(), 7) as YearAndMonth; 
YearAndMonth 
------------ 
2016-08 

Таким образом, ваш запрос легко выражается как:

SELECT * FROM eob_posting 
WHERE LEFT(completed_date, 7) = LEFT(NOW(), 7) 

Счастливая охота!

2

Чтобы получить текущий месяц, вы должны использовать YEAR() и MONTH():

WHERE YEAR(completed_date) = YEAR(NOW()) AND MONTH(completed_date) = MONTH(NOW()) 
+0

Текущий месяц ?? –

+0

Его вопрос смущает об этом. – Barmar

+0

Это вернет строки, завершенные только сегодня, а не весь текущий месяц. – Mureinik

0
select * from eob_posting 
where completed_date >= CAST(DATE_FORMAT(curdate() ,'%Y-%m-01') as DATE) 
Смежные вопросы