Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прибвить значение в DATATIME? 
V
    Опции темы
mogul82
Дата 19.1.2009, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



Мне надо узнать как:

Как прибвить значение в DATATIME? По  дням напр 10 и оставить минуты и часы в покое.
Как прибвить значение в DATATIME? По часам напр 50 и оставить дни в покое.

Как делать выборку по DATATIME? За последние напр 10 дней, с учётом часов и мнут.

Это сообщение отредактировал(а) mogul82 - 19.1.2009, 20:42
PM MAIL   Вверх
unicross
Дата 19.1.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 5
Всего: 53



Цитата(mogul82 @  19.1.2009,  20:40 Найти цитируемый пост)
Как прибвить значение в DATATIME? По  дням напр 10 и оставить минуты и часы в покое.

Код

ADDDATE('2008-09-21 22:36:43', INTERVAL 10 DAY)

Цитата(mogul82 @  19.1.2009,  20:40 Найти цитируемый пост)
Как прибвить значение в DATATIME? По часам напр 50 и оставить дни в покое.

Код

ADDDATE('2008-09-21 22:36:43', INTERVAL 3 HOUR)

PM MAIL WWW   Вверх
mogul82
Дата 19.1.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



А как указать в какой таблице и какое поле?
PM MAIL   Вверх
lelik133
Дата 20.1.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 3
Всего: 14



Цитата(mogul82 @ 19.1.2009,  22:27)
А как указать в какой таблице и какое поле?

mogul82 так же как и в любом update/select запросе.
PM ICQ   Вверх
mogul82
Дата 20.1.2009, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



не получается так: 


Код

UPDATE asd SET time=ADDDATE('2008-09-21 22:36:43', INTERVAL 10 DAY) WHERE id='1'


Как ещё можно?
PM MAIL   Вверх
ТоляМБА
Дата 20.1.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 4
Всего: 252



mogul82, не называя поля зарезервированными словами SQL - в частности time или бери в кавычки `time`
Вместо '2008-09-21 22:36:43' пишешь имя поля
PM   Вверх
Валерия
Дата 20.1.2009, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



Сделай просто 
Код

SELECT ADDDATE('2008-09-21 22:36:43', INTERVAL 10 DAY)

Что выдает?
PM MAIL   Вверх
mogul82
Дата 20.1.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



Цитата(Валерия @ 20.1.2009,  19:04)
Сделай просто 
Код

SELECT ADDDATE('2008-09-21 22:36:43', INTERVAL 10 DAY)

Что выдает?

Ошибку по инскрукции or die("Error");

Тут ваше табл не прописана.
PM MAIL   Вверх
ТоляМБА
Дата 20.1.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 4
Всего: 252



Цитата(mogul82 @  20.1.2009,  21:37 Найти цитируемый пост)
Тут ваше табл не прописана.

Оно и не надо это проверка.
Кусок php-кода со строкой запроса в студию!
PM   Вверх
unicross
Дата 20.1.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 5
Всего: 53



Код

<?php
$db = mysql_connect("localhost", "root", "") or die('Error connect');
$res = mysql_query("SELECT ADDDATE('2008-09-21 22:36:43', INTERVAL 10 DAY)");
if (mysql_num_rows($res) == 1) {
   $pole = mysql_fetch_row($res);   
   echo $pole[0];
}
mysql_close($db);
?>

Вывод
Код

2008-10-01 22:36:43


Обновление даты:
Код

<?php
$db = mysql_connect("localhost", "root", "") or die('Error connect');
mysql_select_db("tests");
$sql = "UPDATE `asd` SET `time`=ADDDATE(`time`, INTERVAL 10 DAY) WHERE `id`='1'";
mysql_query($sql) or die('Ошибка');
echo "Дата изменена";
mysql_close($db);
?>

PM MAIL WWW   Вверх
mogul82
Дата 20.1.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



Я так пытался - ошибка.

Код

mysql_query("UPDATE obs SET times=DATE_ADD('1997-12-31', INTERVAL 1 DAY) WHERE id='1'") or die("error_1");


и так

Код

mysql_query("UPDATE obs SET times=DATE_ADD('times', INTERVAL 1 DAY") WHERE id='1'") or die("error_1");

PM MAIL   Вверх
unicross
Дата 20.1.2009, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 5
Всего: 53



Цитата

asd SET time=

Цитата

obs SET times=

Что случилось с названиями полей? Почему они разные???
Код

$sql = "UPDATE `asd` SET `time`=DATE_ADD('1997-12-31', INTERVAL 1 DAY) WHERE `id`='1'";

Этот запрос прошел без проблем....
Цитата

 times=DATE_ADD('times', INTERVAL 1 DAY")

Здесь куча ошибок.
1. Поле заключается в обратные кавычки, а не в апострофы.
2. После слова DAY лишняя кавычка.

mogul82, изучайте примеры выше...
PM MAIL WWW   Вверх
unicross
Дата 20.1.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 5
Всего: 53



Цитата(mogul82 @  19.1.2009,  20:40 Найти цитируемый пост)
Как делать выборку по DATATIME? За последние напр 10 дней

Код

<?php
$db = mysql_connect("localhost", "root", "") or die('Error connect');
mysql_select_db("tests");
mysql_query("SET NAMES cp1251");
$sql = "SELECT `time` FROM `asd` WHERE `time`>=(NOW() - INTERVAL 10 DAY)";
$res = mysql_query($sql);
while ($pole = mysql_fetch_row($res)) {
   echo $pole[0], "<BR>";
}
mysql_close($db);
?>

PM MAIL WWW   Вверх
mogul82
Дата 20.1.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: нет
Всего: -5



Цитата(unicross @ 20.1.2009,  21:17)
Цитата(mogul82 @  19.1.2009,  20:40 Найти цитируемый пост)
Как делать выборку по DATATIME? За последние напр 10 дней

Код

<?php
$db = mysql_connect("localhost", "root", "") or die('Error connect');
mysql_select_db("tests");
mysql_query("SET NAMES cp1251");
$sql = "SELECT `time` FROM `asd` WHERE `time`>=(NOW() - INTERVAL 10 DAY)";
$res = mysql_query($sql);
while ($pole = mysql_fetch_row($res)) {
   echo $pole[0], "<BR>";
}
mysql_close($db);
?>

NOW() - это что за функция?
PM MAIL   Вверх
unicross
Дата 20.1.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 5
Всего: 53



Цитата(mogul82 @  20.1.2009,  22:17 Найти цитируемый пост)
NOW() - это что за функция?

возвращает текущие дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.