Извлечение информации из datetime для ввода в SQL-запрос

#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, оно ничего не распечатает, пока в ноябре не поступит какой-либо ввод .. это то, что вы хотите?

надеюсь, это поможет (: