Автор Тема: (РЕШЕН) Mysql  (Прочетена 1809 пъти)

console

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
    • WWW
(РЕШЕН) Mysql
« -: Sep 21, 2008, 19:44 »
Здравейте!

Имам база данни в която се записват чаове в формат (ЧЧ,ММ,СС).

Имам примерно :
18:00:00 и
18:00:10
като те са в различни колони разбира се.

Мога ли да селектирам чрез Mysql времето между двата часа в секунди?
В случая е 10 секунди.
Активен

“Ever tried. Ever failed. No matter. Try again. Fail again. Fail Better.”

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
(РЕШЕН) Mysql
« Отговор #1 -: Sep 21, 2008, 22:17 »
Примерен код
select TIMEDIFF('18:00:10' , '18:00:00')

Това устройва ли те?

edit: Естествено, заявката ще е по-сложна, тъй като ще трябва да има и условие за избор на точно тези стойности, но за това което питаш... Дай повече информация, ако ще градим цяла заявка '<img'>



Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

console

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
    • WWW
(РЕШЕН) Mysql
« Отговор #2 -: Sep 22, 2008, 17:06 »
Neter тази заявка ми върши работа само че немога да го комбинирам с php

Примерен код

<?php
$connect=mysql_connect("localhost","root","password");
$db = mysql_select_db("database",$connect);
$sql ="select time,time1 from table where id=1";
$result=mysql_query($sql,$connect);

while ($line = mysql_fetch_array($result) )
{
$time = $line['time'];
$time1 = $line['time1'];
}
$sql = "SELECT TIMEDIFF ($time,$time1)";
$result = mysql_query($sql,$connect);
echo $result;
?>


Примерен код
# php fail.php
Resource id #6



Мога ли въобще по този начин да го направя?
Активен

“Ever tried. Ever failed. No matter. Try again. Fail again. Fail Better.”

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
(РЕШЕН) Mysql
« Отговор #3 -: Sep 22, 2008, 19:04 »
1. Махни интервала между TIMEDIFF и скобата. Понякога създава проблеми;
2. Използвай единични кавички, вместо двойни, освен ако кодът не изисква задъжително двойни кавички. Подобрява се бързодействието;
3. Не е нужно да пълниш кода с излишни указатели за връзка във всяко mysql_query, когато имаш само една връзка към базата;
4. Извежда ти "Resource id #6" тъй като викаш резултата от mysql_query, вместо от пропуснатия mysql_fetch_array. Допълнително, при echo се указва и колоната, която трябва да се изведе, тъй като $result е масив, а не единична стойност. И допълнително, указвай на mysql_fetch_array как да си кръсти стойностите с MYSQL_ASSOC и MYSQL_NUM или използвай кратката функция mysql_fetch_assoc. И още едно допълнително, ако използваш ASSOC, то имай предвид, че колоната при втория SELECT ще има ново име и то ще бъде "TIMEDIFF('{$time}','{$time1}''<img'>". И това всичкото в пример
Примерен код
<?php
$connect = mysql_connect('localhost','root','password');
$db = mysql_select_db('database',$connect);
$sql = 'select time,time1 from table where id=1';
$result = mysql_query($sql);

while ($line = mysql_fetch_assoc($result) )
{
$time = $line['time'];
$time1 = $line['time1'];
}
$sql = "SELECT TIMEDIFF('{$time}','{$time1}')";
$result = mysql_query($sql);
$result1 = mysql_fetch_assoc($result);
echo $result1["TIMEDIFF('{$time}','{$time1}')"];
?>

5. Можеш драстично да съкратиш кода си като обединиш двете заявки в една и използваш MYSQL_NUM. Tогава примерът изглежда така
Примерен код
<?php
$connect = mysql_connect("localhost","root","password");
$db = mysql_select_db("database",$connect);
$sql = "SELECT TIMEDIFF((select time from table where id=1),(select time1 from table where id=1))";
$result = mysql_query($sql);
$result1 = mysql_fetch_array($result, MYSQL_NUM);
echo $result1[0];
?>




Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

console

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
    • WWW
(РЕШЕН) Mysql
« Отговор #4 -: Sep 24, 2008, 09:57 »
Благодаря свърши ми прекрасна работа '<img'>
Активен

“Ever tried. Ever failed. No matter. Try again. Fail again. Fail Better.”

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
MySql малък проблем.
Хардуерни и софтуерни проблеми
Marto 6 4458 Последна публикация Sep 25, 2002, 12:32
от
mysql въпрос
Настройка на програми
dumi 0 1370 Последна публикация Oct 08, 2003, 06:42
от dumi
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 5168 Последна публикация Sep 07, 2004, 17:02
от jica
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 6983 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 5360 Последна публикация Mar 16, 2008, 01:17
от neter