Официальный сайт студ.городка НГТУ
Программирование и БД » [php] Select * where c_date=curdate() где c_date: datetime. Как? 

#1  29.05.08 16:09

[php] Select * where c_date=curdate() где c_date: datetime. Как?

Народ подскажите, как правильно сделать запрос к мусклу
если c_date имеет формат datetime  и требуется сделать селект:
1.  по сегодняшней дате.
2. по любой другой дате.

Как правильно сделать запрос?

Select * where c_date=curdate()

Offline

#2  29.05.08 16:47

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

если на пхп то можно так:

if ($_POST['year'] && $_POST['month'] && $_POST['day'])
        $date= "{$_POST['year']}-{$_POST['month']}-{$_POST['day']}";
else
        $date = date("Y-m-d", time());

$query = "select * from hz where date like '{$date}%'";

если бы просто был формат date, то

$query = "select * from hz where date = '{$date}'";

а ещё лучше использовать timestamp, с ним работать гораздо удобнее

Offline

#3  29.05.08 16:55

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

да не... это не покатит.

Мне средствами SQL нужно это сделать без привлечения пхп, + у меня не date а datetime, в котором содержится и дата и время, и мне нужно выбрать по условию допустим только сегодняшний день - curdate, или какой нить другой дипазон допустим between двух дат.
кстати. сегодняшний диапазон можно битвином определить, ну это  так... сказать не программерский способ - это на последнее.

Offline

#4  29.05.08 17:03

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

посмотрел
http://phpclub.ru/mysql/doc/date-and-ti … tions.html
впиринципе первый самый запрос оттуда можно использовать. у кого ещё какие мысли?

Offline

#5  29.05.08 17:06

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

но всё равно немногог не то. нужно сделать за даты, а не за количество дней....

Offline

#6  29.05.08 17:24

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

SELECT * FROM tu_payments  WHERE TO_DAYS(NOW())= TO_DAYS(c_date) ;

типа для сегодняшней даты.

Offline

#7  30.05.08 07:34

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

храните даты в unix времени!! гораздо удобнее блин.

Offline

#8  30.05.08 10:37

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

watson написал(а):

unix времени!

wtf? :)

Offline

#9  30.05.08 18:02

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

это, видимо, количество секунд с 1 января 1970, 00:00:00 GMT

Offline

#10  31.05.08 00:08

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Zann, бгого, тут все в курсе)

Offline

#11  31.05.08 08:30

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Zann написал(а):

это, видимо, количество секунд с 1 января 1970, 00:00:00 GMT

это спосаб кадированийа времени

Offline

#12  31.05.08 11:04

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

SELECT * FROM tu  WHERE TO_DAYS(c_date) between TO_DAYS('20080528') and TO_DAYS('20080529')  ;
типа так вот сделал... не совсем на мой взгляд правильно с программерской точки зрения. У кого ещё какие варианты за это время накопились?

Исправлено Vega (06.06.08 11:53)

Offline

#13  01.06.08 15:35

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

where DATE_FORMAT(`c_date`,"%Y-%m-%d")=CURDATE()
куда интереснее будет

Offline

#14  01.06.08 21:10

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Stell Hawk написал(а):

where DATE_FORMAT(`c_date`,"%Y-%m-%d")=CURDATE()
куда интереснее будет

Во -во... Именно то что надо. просто не знал как это правильно сделать...

Исправлено Vega (01.06.08 21:11)

Offline

#15  06.06.08 11:57

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Подскажите ещё такой вопрос....
как отнять от текущей даты в пхп - дату, которую я держу в переменной из запроса к БД и получить разницу? Обе даты привести к unix  формату прежде чем отнимать? потом отняв как узнать в разницу в годах, днях, часах, минутах... как правильно привести обратно с unix формата остаток от вычитания?

Offline

#16  06.06.08 16:43

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Отнимай во время выборки, так будет быстрее

Offline

#17  07.06.08 21:30

Re: [php] Select * where c_date=curdate() где c_date: datetime. Как?

Vega, функци я date хорошо работает с unix метками.
например date ("Y-m-d",время в юникс формате) и получишь то что надо. а вообще

A-Lex написал(а):

Отнимай во время выборки, так будет быстрее

Offline

Программирование и БД » [php] Select * where c_date=curdate() где c_date: datetime. Как? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 3.022 сек.
Выполнено 14 запросов.