In this page, we have discussed how to use MySQL DATE function (MONTH function in the attached example) with WHERE clause to introduce some conditions along with the expression.
Sample table: publisher
SELECT pub_name,pub_city,country,estd FROM publisher WHERE MONTH(estd)=12;
Explanation:
The above statement will filter those publishers from publisher table who was estd in the month of December.
Sample Output:
mysql> SELECT pub_name,pub_city,country,estd -> FROM publisher -> WHERE MONTH(estd)=12; +--------------------------+----------+---------+------------+ | pub_name | pub_city | country | estd | +--------------------------+----------+---------+------------+ | Jex Max Publication | New York | USA | 1969-12-25 | | Summer Night Publication | New York | USA | 1990-12-10 | +--------------------------+----------+---------+------------+ 2 rows in set (0.00 sec)
Publisher's name
Date of establishment
Current date
AGE
query('SELECT pub_name,pub_city,country,estd FROM publisher WHERE MONTH(estd) = 12') as $row) < echo "
"; echo "
" . $row['pub_name'] . "
"; echo "
" . $row['pub_city'] . "
"; echo "
" . $row['country'] . "
"; echo "
" . $row['estd'] . "
"; echo "
"; > ?>
Online Practice Editor:
Follow us on Facebook and Twitter for latest update.
Одной из самой сложной работы в php считаю запросы в mysql по дате. Во-первых, не всегда логически просто понять что нужно выбрать если у нас сложные условия, типа: выбрать все даты из БД, которые больше такого-то отрезка времени, но меньше текущей даты увеличенной на 25 дней. Во-вторых, возникают другие проблемы от формата до самих запросов.
Начнем с формата хранения даты в БД
Вспомните тип поля timestamp, у него формат времени такой: гггг-мм-дд чч:мм:сс, например: 2017-11-05 14:23:05. Рекомендую использовать в своих базах именно этот формат, т.к. это стандарт. За счет него можно будет выгружать только время или дату, или одновременно то и другое. Не обязательно тип поля брать timestamp, можно использовать обычный text.
Примеры mysql запросов
Теперь рассмотрим практические примеры выборок по дате с учетом того, что дата записана в формате гггг-мм-дд чч:мм:сс:
1. Выбираем все записи в диапазоне: дата в БД < текущей select * from ruefz_jcomments where DATE(date)
2. Выбираем данные за текущий месяц: дата в БД > от 1 числа этого месяца и дата < 1 числа следующего месяца select id from tab where date > LAST_DAY(CURDATE()) + INTERVAL 1 DAY — INTERVAL 1 MONTH and date < DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY) Расшифровка: выбрать все id записи, в которых дата > последний день месяца сегодняшней даты + 1 день — 1 месяц и дата < последний день месяца сегодняшней даты + 1 день
3. Выбираем данные за текущий месяц, год и день не учитывается (%c месяц 1-12, %e дни 1-31 в mysql; n — месяц 1-12, j дни 1-31 в PHP ) select id from tab where DATE_FORMAT(date, ‘%c’)='».date(‘n’).»‘
4. За текущую неделю select id from tab where date > DATE_SUB(CURDATE(), INTERVAL (DAYOFWEEK(CURDATE()) -1) DAY) and date < DATE_ADD(CURDATE(), INTERVAL (9 - DAYOFWEEK(CURDATE())) DAY)
5. выбираем все записи в диапазоне: (текущая — 10 дней) < дата в БД < текущая дата select * from ruefz_jcomments where DATE(date) = DATE_SUB(NOW(), INTERVAL 10 DAY)
По этим примерам вам будет понятно, как составлять свои решения. Зачастую, при работе с датами вам потребуется использовать запросы DATE_ADD – прибавление, DATE_SUB — вычитание, CURDATE() — сегодняшняя дата, NOW() — сегодняшняя дата и время.
Изменить формат вывода времени в mysql
Если из БД надо взять дату в другом формате, мы можем изменить ее на «лету», для обработки на php скриптах:
DATE_FORMAT(date,format) — Форматирует величину date в соответствии со строкой format.
Пример: $result = mysql_query(«SELECT DATE_FORMAT(‘1997-10-04 22:23:01’, ‘%d.%m.%Y %H:%i:%S’) AS datess FROM csv»); while ($row=mysql_fetch_array($result)) echo $row[«datess»].» «; >//05.11.2017 14:23:55
В последнем примере мы приводим дату из БД в читаемый вид для пользователя.
I have a PHP query that I only want to select if the date is 2014 in the table:
$result=mysqli_query($linkID, "SELECT * FROM table WHERE date(Y) = '2014'";
I’m trying to call «date(Y)» with the correct expression as that is obviously incorrect.
Answer
Solution:
SELECT * FROM table WHERE YEAR(the_date_field) = 2014
the_date_field is the field containing the date of course
Answer
Solution:
$result=mysqli_query($linkID, "SELECT * FROM table WHERE YEAR(datetime_field) = 2014");
Share solution ↓
Additional Information:
Didn’t find the answer?
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Similar questions
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
About the technologies asked in this question
PHP
PHP (from the English Hypertext Preprocessor — hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites. The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license. https://www.php.net/
MySQL
DBMS is a database management system. It is designed to change, search, add and delete information in the database. There are many DBMSs designed for similar purposes with different features. One of the most popular is MySQL. It is a software tool designed to work with relational SQL databases. It is easy to learn even for site owners who are not professional programmers or administrators. MySQL DBMS also allows you to export and import data, which is convenient when moving large amounts of information. https://www.mysql.com/
Welcome to programmierfrage.com
programmierfrage.com is a question and answer site for professional web developers, programming enthusiasts and website builders. Site created and operated by the community. Together with you, we create a free library of detailed answers to any question on programming, web development, website creation and website administration.
Get answers to specific questions
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Help Others Solve Their Issues
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.