Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: День недели из timestamp
 
 автор: mihdan   (04.07.2008 в 13:55)   письмо автору
 
 

В БД есть таблица у которой поле date типа timestamp. Как силами SQL вывести день недели по-русски?

   
 
 автор: Trianon   (04.07.2008 в 14:09)   письмо автору
 
   для: mihdan   (04.07.2008 в 13:55)
 

SELECT  
   ELT(
    1+DATE_FORMAT(date, '%w') 
    ,'Вск','Пнд','Втр','Срд','Чтв','Птн','Сбт') AS DayOfWeek
  FROM tbl

   
 
 автор: mihdan   (04.07.2008 в 14:29)   письмо автору
 
   для: Trianon   (04.07.2008 в 14:09)
 

Вот это понимаю - решение. А то я сделал:

<?
$wday
['Monday'] = 'Понедельник';
$wday['Tuesday'] = 'Вторник';
$wday['Wednesday'] = 'Среда';
$wday['Thursday'] = 'Четверг';
$wday['Friday'] = 'Пятница';
$wday['Saturday'] = 'Суббота';
$wday['Sunday'] = 'Воскресенье';

$sql "
            SELECT    *,            
            DATE_FORMAT(date, '%W') AS wday            
            ORDER    BY    `date`    DESC
    "
;
$exec mysql_query($sql) or die(mysql_error());
    if (
mysql_num_rows($exec) > 0) {
        
$i 1;
        while (
$page mysql_fetch_assoc($exec)) {            
            echo 
$wday[$page['wday']];
}
}
?>


Работать-работает, но мне не понравилось, за функцию ELT спасибо - не знал ;)

   
 
 автор: mihdan   (04.07.2008 в 14:34)   письмо автору
 
   для: Trianon   (04.07.2008 в 14:09)
 

Что-то в справочнике написано, что такая ф-я есть с mysql4, но у меня отписал, что данной функции не существует

   
 
 автор: Trianon   (04.07.2008 в 14:59)   письмо автору
 
   для: mihdan   (04.07.2008 в 14:34)
 

Что-то Вы путаете. Я нигде не нашел версионных ограничений на функцию ELT() ...
Собственно, можно и без нее обойтись. Например, используя SUBSTRING и TRIM
Изврата будет слегка больше, но всё будет в рамках sql, без php ...

   
 
 автор: mihdan   (04.07.2008 в 17:49)   письмо автору
 
   для: Trianon   (04.07.2008 в 14:59)
 

Но факт остается фактом "Function ELT() not found in......."

   
 
 автор: Trianon   (04.07.2008 в 18:16)   письмо автору
 
   для: mihdan   (04.07.2008 в 17:49)
 

а какая у Вас версия сервера?

   
 
 автор: mihdan   (07.07.2008 в 14:33)   письмо автору
 
   для: Trianon   (04.07.2008 в 18:16)
 

5.0.45

   
 
 автор: Trianon   (07.07.2008 в 14:36)   письмо автору
 
   для: mihdan   (07.07.2008 в 14:33)
 

5.0.45 - это версия клиентского API.
К версии сервера не имеет отношения вообще.
Версию сервера выясняют mysql-командой SELECT VERSION();

   
 
 автор: mihdan   (09.07.2008 в 11:23)   письмо автору
 
   для: Trianon   (07.07.2008 в 14:36)
 

Идентично http://referee.ru/info.php

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования