|
|
|
| В общем нужно сделать выборку от 13 числа этого месяца(включая) до 12 числа следущего месяца
В голову пришло поступить вот так:
<?
//дата начала отсчета
$d13 = strftime("%Y-%m-13");
//Прибавляем к месяцу +1
$incr = date("m")+1;
//получаем конец отсчета
$d12 = strftime("%Y-".$incr."-12");
//формируем sql-запрос
$sql_q = "SELECT * FROM account WHERE id_user = ".$res_srch['id_user']."
AND date >= '$d13' AND date = '$d12'";
?>
|
Наверное лучше бы было с BETWEEN использовать условие.
Но проблема в том что если это будет декабрь месяц, то $incr = date("m")+1 примит значение 13, а такого месяца нет.
Как поступить? | |
|
|
|
|
|
|
|
для: ols
(19.10.2008 в 14:50)
| | если "по-Вашему", то
<?php
$sql_q = "SELEСT * FROM account WHERE id_user=" . $res_srch['id_user']
. "AND date >= DATE(YEAR(NOW)+MONTH(NOW)+INTERVAL 13 DAY)
AND date < DATE_ADD(YEAR(NOW)+MONTH(NOW)+INTERVAL 13 DAY, INTERVAL 1 MONTH)";
?>
|
Трианон если я не прав, поправит! =))
В MySQL я, к сожалению, не очень силен,а протестить щас не могу! | |
|
|
|
|
|
|
|
для: ddhvvn
(19.10.2008 в 15:34)
| | Запрос неправильный, помогите поправить | |
|
|
|
|
|
|
|
для: ddhvvn
(19.10.2008 в 15:34)
| | А что сразу Трианон-то?
WHERE `date` BETWEEN CONCAT(LEFT(CURDATE(),8),'13 00:00:00')
AND (CONCAT(LEFT(CURDATE(),8),'12 23:59:59') + INTERVAL 1 MONTH)
|
| |
|
|
|
|
|
|
|
для: Trianon
(19.10.2008 в 19:19)
| | Ну у Вас как всегда элегантно и правильно ))) | |
|
|
|
|
|
|
|
для: ddhvvn
(19.10.2008 в 20:33)
| | Гы.
Ну вот прямо здесь кондово и топорно. Хотя вроде как работает. | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2008 в 20:41)
| | - | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2008 в 19:19)
| | Вы мой кумир! | |
|
|
|