|
|
|
| В БД есть таблица у которой поле date типа timestamp. Как силами SQL вывести день недели по-русски? | |
|
|
|
|
|
|
|
для: mihdan
(04.07.2008 в 13:55)
| |
SELECT
ELT(
1+DATE_FORMAT(date, '%w')
,'Вск','Пнд','Втр','Срд','Чтв','Птн','Сбт') AS DayOfWeek
FROM tbl
|
| |
|
|
|
|
|
|
|
для: 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 спасибо - не знал ;) | |
|
|
|
|
|
|
|
для: Trianon
(04.07.2008 в 14:09)
| | Что-то в справочнике написано, что такая ф-я есть с mysql4, но у меня отписал, что данной функции не существует | |
|
|
|
|
|
|
|
для: mihdan
(04.07.2008 в 14:34)
| | Что-то Вы путаете. Я нигде не нашел версионных ограничений на функцию ELT() ...
Собственно, можно и без нее обойтись. Например, используя SUBSTRING и TRIM
Изврата будет слегка больше, но всё будет в рамках sql, без php ... | |
|
|
|
|
|
|
|
для: Trianon
(04.07.2008 в 14:59)
| | Но факт остается фактом "Function ELT() not found in......." | |
|
|
|
|
|
|
|
для: mihdan
(04.07.2008 в 17:49)
| | а какая у Вас версия сервера? | |
|
|
|
|
|
|
|
для: Trianon
(04.07.2008 в 18:16)
| | 5.0.45 | |
|
|
|
|
|
|
|
для: mihdan
(07.07.2008 в 14:33)
| | 5.0.45 - это версия клиентского API.
К версии сервера не имеет отношения вообще.
Версию сервера выясняют mysql-командой SELECT VERSION(); | |
|
|
|
|