#php #mysql #sql
#php #mysql #sql
Вопрос:
У меня возникла небольшая проблема, пытаясь выяснить, как написать нужный мне запрос.
У меня есть целая куча записей в таблице mysql, каждая запись имеет столбец ‘datecreated’, который имеет тип datetime и форматируется следующим образом: 0000-00-00 00:00:00
Что мне нужно сделать, так это извлечь все записи, относящиеся к 11 месяцу этого года, но их год должен быть взят из даты сервера, чтобы, когда он перейдет в новый год, он по-прежнему не выполнял прошлогодний запрос.
Имеет ли это вообще смысл? … Я совершенно не понимаю, как это сделать.
Приветствия,
Ответ №1:
select
yt.*
from
yourtable yt
where
month(yt.datecreated) = 11
and year(yt.datecreated) = year(now())
;
Комментарии:
1. Будет ли это принимать значения из созданного datecreated типа данных mysql?
2.
month()
иyear()
работа с типами datetime, timestamp и date. dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Ответ №2:
Хорошо, это не сложно, tbh 😉 вы хотите только за 11 месяц (ноябрь)? это должно сработать, чувак:
//connect to database
$current_year = date("Y"); //gets the current year according to server time
$query = "SELECT * FROM your_table WHERE datecreated LIKE '".$current_year."-11%'";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)){
echo ' <br />';
echo $row['column_id'];
echo '<br />
';
}
измените your_table на свое имя таблицы и column_id на имя столбца того, что вы хотите напечатать
он напечатает все, что было создано в 2011-11 годах... однако, когда серверное время меняется на 2012, оно ничего не распечатает, пока в ноябре не поступит какой-либо ввод .. это то, что вы хотите?
надеюсь, это поможет (: