isamitakata
Дата: 12.01.2013 01:47:28
Помогите пожалуйста еще составить запрос.
Вообщем есть таблица.
item
title - Item 1
expire - 1113
title - Item 2
expire - 1115
title - Item 3
expire - 1109
Поле `expire`, там формат такой, первые две цифры это месяц, вторые две это год. Т е 11 месяц и 15 год.
Мне нужно вывести те записи в которых expire не кончился по отношению к текущей дате. Вот и надо как то перевести это в формат даты и сравнить. Как это реализовать. Помогите пожалуйста.
$sql = $connect->query("SELECT * FROM `item` WHERE `expire` ");
ReadTheFuckingManual
Дата: 12.01.2013 03:50:10
isamitakata
Дата: 12.01.2013 11:54:28
дата датой) а вот правильно сделать не получается.
bochkov
Дата: 12.01.2013 16:51:09
Меняй таблицу, год отдельно месяц отдельно, или хотябы в колонке формат ГГММ сделай, тогда можно как с цифрой оперировать, чо делать с 1999 годом, чем отличается 1950 год от 2050?
Меняй структуру таблицы намучаешься с ней
javajdbc
Дата: 12.01.2013 17:37:48
| isamitakata |
|---|
| дата датой) а вот правильно сделать не получается. |
select STR_TO_DATE('0215','%m%y') from dual
isamitakata
Дата: 14.01.2013 21:23:24
Вообще сделал так STR_TO_DATE(`d`.`expire`,'%y%m') >= now()
и записи выводятся как нужно кроме одного, не выводится те у котрых даты 0113, т е текущий месяц, а 0213 работает. Почему? Ведь я поставил условие большие или равно.
Akina
Дата: 14.01.2013 22:34:20
Потому что
| manual |
|---|
| Returns the current date and time |
isamitakata
Дата: 14.01.2013 22:39:03
Akina, да все верно =) уже сделал, перевел в формат.
javajdbc
Дата: 14.01.2013 22:42:54
| isamitakata |
|---|
Вообще сделал так STR_TO_DATE(`d`.`expire`,'%y%m') >= now()
и записи выводятся как нужно кроме одного, не выводится те у котрых даты 0113, т е текущий месяц, а 0213 работает. Почему? Ведь я поставил условие большие или равно. |
STR_TO_DATE('1301','%y%m') возврашает кажется
2013-01-01 00:00:00
посмотрите ка правильно перевести NOW() в текуший месяц,
например испоьзуя и/или чтонибудь рядом:
EXTRACT(YEAR_MONTH FROM NOW())
isamitakata
Дата: 15.01.2013 03:29:17
сделал так DATE_FORMAT(STR_TO_DATE(`d`.`expire`,'%y%m'), '%y%m') >= DATE_FORMAT(CURDATE(), '%y%m')