Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 2462 В разделе
Programming
от November 13th, 2010,
В подшивках: Firebird
Все мы прекрасно понимаем, что при разработке ПО для российского рынка использовать зарубежные стандарты не правильно. Одним из таких “неправильно” является использование даты в американском стиле (она читается наоборот). Если вы планируете использовать преобразование даты часто, то это можно сделать не в клиентском приложении, а с помощью процедуры на самом сервере. Конечно, вам никто не запрещает сделать $date = DateTime::createFromFormat('Y-m-d H:i:s', $record->TS); echo $date->format('d.m.Y H:i:s'); ($record->TS это запись в БД типа TIMESTAMP) и забыть об этом, но разве это интересно? 🙂 Давайте обременим сервер заниматься этим! Создадим новую процедуру и назовем ее DATE_EURO:
/* AMERICAN DATE TO EURO FORMAT CONVERTER */
SET TERM ^ ;
CREATE PROCEDURE DATE_EURO (
ADATE TIMESTAMP)
RETURNS (
EURO VARCHAR(10))
AS
BEGIN
EURO = CAST(
(
(Extract (Day from ADate))||'-'||
(Extract (Month from ADate))||'-'||
(Extract (Year from ADate))
) AS VARCHAR(10));
suspend;
END^
SET TERM ; ^
Сохраняем на сервере и теперь ее можно начать использовать:
select first 10 skip 0 ( SELECT * FROM DATE_EURO("TIME") ) as "P_DATE",
( CAST ("TIME" AS TIME) ) as "P_TIME",
...
ORDER BY "TIME" desc
Здесь поле TIME хранит в себе TIMESTAMP. Получится вот такая красота 13-11-2010 04:18:19 🙂
Fortune cookie: Today's spam: We're looking for people who are interested in being paid for their opinions.
Leave a Reply