MySQL FORMAT_DATE% d возвращает 0 - PullRequest
0 голосов
/ 14 марта 2012

У меня проблемы с форматом MySQL date_date, и я не понимаю, почему.У меня есть следующее как часть моего кода:

date_format(NOW() + INTERVAL 3 DAY, '%Y-%m-%d') 

, который, кажется, работает нормально, за исключением того факта, что независимо от выбранной даты,% d возвращается как один ноль ('0').Если я изменю% d на% e, я могу получить правильную дату, но я использую ее для сравнения дат, поэтому мне нужен начальный ноль для чисел ниже 10. Это параметр базы данных, или я упускаю что-то очевидное?

Заранее спасибо.

ОБНОВЛЕНИЕ: я чувствую, что это должно быть что-то в БД, потому что когда я упрощаю запрос к этому:

$q = "SELECT date_format(NOW() + INTERVAL 3 DAY, '%Y-%m-%d') as 'today' from content_field_date LIMIT 1";

'сегодня'печатается как '2012-03-0'

Между тем, это:

$q = "SELECT date_format(NOW() + INTERVAL 3 DAY, '%Y-%m-%e') as 'today' from content_field_date LIMIT 1";

правильно возвращает '2012-03-17'

Zeth

Ответы [ 2 ]

4 голосов
/ 12 декабря 2012

Я столкнулся с этой же проблемой сегодня, основываясь на названии вашей таблицы "content_field_date". Я предполагаю, что Drupal использовался. Ответ на это можно найти здесь:

Некоторые sql-запросы работают в терминале, но не с функцией db_query () в Drupal 6 Почему ..?

и здесь: http://drupal.org/node/100846

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

$q = "SELECT date_format(NOW() + INTERVAL 3 DAY, '%%Y-%%m-%%d') as 'today' from content_field_date LIMIT 1";
1 голос
/ 14 марта 2012

То, что вы описываете, не должно произойти.Вы либо обнаружили ошибку MySQL, либо делаете что-то не так.

Если вы хотите сравнивать только даты, вы можете сделать это внутри MySQL, и вам, вероятно, вообще не следует использовать DATE_FORMAT().Вы можете использовать это, чтобы получить дату:

DATE(NOW() + INTERVAL 3 DAY)

или:

(CURDATE() + INTERVAL 3 DAY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...