Сейчас я думаю, как лучше сделать.
Значит, время у меня записывается в числах(от 1970г.), т.е. функцией time().
Хранится оно в бд.
Когда юзер генерирует отчет, он выбирает месяц и год.
Соответственно нужно, установить интервал между первым и последним днем выбранного месяца, в цифрах.
P.S. Как, кстати, такое время называется?
Думаю вот как:
нужно узнать число у первой и последней секунды выбранного месяца.
А потом сформировать запрос типа:
SELECT * FROM table WHERE time > 'первая секунда' AND time < 'последняя секунда'
Спустя 9 минут, 15 секунд (29.12.2009 - 14:51) VolCh написал(а):
Юникс таймштамп оно называется Вот только к чему такие сложности?
Спустя 30 секунд (29.12.2009 - 14:52) twin написал(а):
Можно и так, только >= и <= Еще учти летнее и зимнее время. А вообще проще отформатировать.
Спустя 2 минуты, 9 секунд (29.12.2009 - 14:54) glock18 написал(а):
http://dev.mysql.com/doc/refman/5.1/en/dat...n_timestampdiff
если даты нет, а только время, то есть time_to_sec и timediff. выбирай что угодно
если даты нет, а только время, то есть time_to_sec и timediff. выбирай что угодно
Спустя 1 час, 11 минут, 1 секунда (29.12.2009 - 16:05) ApuktaChehov написал(а):
И так.
Спасибо за ссылочку, я вот что сделал:
делаем запрос:
date_start - это месяц с днем 01.
date_end - это месяц с последним днем.
возвращается 2 числа, которые являются интервалом. И теперь делаем еще один запрос и сравниваем.
Я в тут сторону думаю?
Или лучше при выводе в цикле, отформатировать каждую дату, а то что будет иметь удовлетворяющую дату - выводить, как сказал twin?
Спасибо за ссылочку, я вот что сделал:
делаем запрос:
SELECT TIMESTAMPDIFF(SECOND,'1970-01-01 00:00:00','$date_start')
SELECT TIMESTAMPDIFF(SECOND,'1970-01-01 00:00:00','$date_end')
date_start - это месяц с днем 01.
date_end - это месяц с последним днем.
возвращается 2 числа, которые являются интервалом. И теперь делаем еще один запрос и сравниваем.
Я в тут сторону думаю?
Или лучше при выводе в цикле, отформатировать каждую дату, а то что будет иметь удовлетворяющую дату - выводить, как сказал twin?
Спустя 4 минуты, 19 секунд (29.12.2009 - 16:09) glock18 написал(а):
ApuktaChehov
ээээ... слов нет. так усложнить, так усложнить...
ээээ... слов нет. так усложнить, так усложнить...
Спустя 1 минута, 9 секунд (29.12.2009 - 16:10) ApuktaChehov написал(а):
Ну простите, я не умею по другому, покажите пожалуйста!!!
Спустя 7 часов, 29 минут, 25 секунд (29.12.2009 - 23:40) ApuktaChehov написал(а):
Никто не подскажет мне как сделать правильно?
Спустя 28 минут, 23 секунды (30.12.2009 - 00:08) twin написал(а):
Дык что нужно то, выборка за месяц или за какой то введенный интервал в секундах?
Если первое, посмотри в сторону операторов DATE_FORMAT и BETWEEN к примеру. Впрочем и второе так же можно решить.
Если первое, посмотри в сторону операторов DATE_FORMAT и BETWEEN к примеру. Впрочем и второе так же можно решить.
Спустя 8 часов, 41 минута, 50 секунд (30.12.2009 - 08:50) ApuktaChehov написал(а):
В базе дата создания заказа хранится в UNIX_TIMESTAMP.
А скрипт у пользователя генерирует дату в месяц.год (например 12.2009), так как отчеты за месяц.
Мне нужно выбрать только те заказы, которые были созданы в этом месяце.
Вот я и не знаю как это лучше(правильно) сделать.
А скрипт у пользователя генерирует дату в месяц.год (например 12.2009), так как отчеты за месяц.
Мне нужно выбрать только те заказы, которые были созданы в этом месяце.
Вот я и не знаю как это лучше(правильно) сделать.
Спустя 1 час, 33 секунды (30.12.2009 - 09:51) ApuktaChehov написал(а):
Все, я сделал. Вот так:
с помощью mktime() перевел дату от юзера в UNIX_TIMESTAMP, а потом создал запрос выборки с интервалом от и до.
Всем спасибо!
с помощью mktime() перевел дату от юзера в UNIX_TIMESTAMP, а потом создал запрос выборки с интервалом от и до.
Всем спасибо!
_____________