Re: DayOfWeek

2007-04-12 Пенетрантность Oleg Deribas


Hello,

SST Планируется ли реализация в FB_UDF функций определений дня недели 
(дня месяца)

SST DOW (DOM) ?

Самая полезная ссылка на эту тему:
http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm

--
Oleg



Re: DayOfWeek

2007-04-12 Пенетрантность Sergiy S. Tkachenko


WildSery пишет:

Во-первых, неправильно. У тебя будет не ровно начало недели, а +время ещё, т.к. 
TIMESTAMP
Во-вторых,
CAST(CURRENT_TIMESTAMP - EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 AS DATE) AS 
WeekBegin,

с полями типа DATE замечательно работает и без этих преобразований.
время сервер сам откидывает (или не учитывает) при выборке



Re: DayOfWeek

2007-04-12 Пенетрантность WildSery

On Thu, 12 Apr 2007 16:27:05 +0400, Sergiy S. Tkachenko [EMAIL PROTECTED] 
wrote:

 с полями типа DATE замечательно работает и без этих преобразований.
 время сервер сам откидывает (или не учитывает) при выборке

Зависит от диалекта, опять же.

-- 
Сергей Смирнов.



Re: DayOfWeek

2007-04-11 Пенетрантность Oleg LOA

Dmitry Yemanov [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED]
 
 Sergiy S. Tkachenko wrote:
 
 Планируется ли реализация в FB_UDF функций определений дня недели
 
 С какого дня предлагаешь считать? И что передать недовольным твоим выбором?
 
 (дня месяца)
 
 EXTRACT (DAY FROM ...)

Дим, Ya в EXTRACT поддерживает вот это

YEAR, MONTH,  DAY, HOUR,  MINUTE,  SECOND, WEEKDAY,  YEARDAY,  QUARTER,  
MONTHWEEK,  YEARWEEK, MILLISECOND

Если чёта в FB еще не появилось, то нуна сделать copy-paste, и от вас отстанут 
с подобными вопросами.





Re: DayOfWeek

2007-04-11 Пенетрантность Gene Feudorov

Hello, Dmitry Yemanov!
You wrote  on Wed, 11 Apr 2007 00:29:14 +0400:


  Планируется ли реализация в FB_UDF функций определений дня недели

 DY С какого дня предлагаешь считать? И что передать недовольным твоим
 DY выбором?

предлагаю с любого, но возвращать 'пн','вт','ср','чт','пт','сб','вс'!
другие народы пусть сами переводят с олбанского :-)

Фёдоров Евгений.
ЗАО Трест-М. Екатеринбург.




Re: DayOfWeek

2007-04-11 Пенетрантность Boulitchev Aleksey



Привет всем.

Планируется ли реализация в FB_UDF функций определений дня недели (дня 
месяца)

DOW (DOM) ?

я нашёл такую (с моими переделками) и у меня есть вопрос.


дарю, прокатит даже на IB40 :)

CREATE PROCEDURE ElapsedDays(Date1 DATE, Date2 DATE)
RETURNS (Result INTEGER)
AS
BEGIN
 Result = Date2-Date1;
SUSPEND;
END
#

grant execute on procedure ElapsedDays to PUBLIC #

/* This procedure calculates the modulus of two number */
CREATE PROCEDURE Modulus(Dividend INTEGER, Divisor INTEGER)
RETURNS (Result INTEGER)
AS
BEGIN
 IF(Dividend = 0) THEN Result = 0;
 ELSE
   Result = Dividend-(CAST((Dividend / Divisor)-0.5 AS INTEGER)*Divisor);
SUSPEND;
END
#

grant execute on procedure Modulus to PUBLIC #

/* This procedure returns the number of the day of the week:
  0 - Monday; 1 - Tuesday; 2 - Wdnesday; 3 - Thursday; 4 - Friday; 5 - 
Saturday; 6 - Sunday

*/
CREATE PROCEDURE DayOfWeek(ADate DATE)
RETURNS (Result INTEGER)
AS
DECLARE VARIABLE Elapsed INTEGER;
BEGIN
 EXECUTE PROCEDURE ElapsedDays('1.1.90', ADate) RETURNING_VALUES Elapsed;
 EXECUTE PROCEDURE Modulus(Elapsed, 7) RETURNING_VALUES Result;
SUSPEND;
END
#

grant execute on procedure DayOfWeek to PUBLIC #



--
Булычев Алексей
http://www.stella-npf.ru




Re: DayOfWeek

2007-04-11 Пенетрантность Игорь Горбонос

Hello, Dmitry!
You wrote  on Wed, 11 Apr 2007 00:29:14 +0400:


 DY Sergiy S. Tkachenko wrote:
 ??
 ?? Планируется ли реализация в FB_UDF функций определений дня недели

 DY С какого дня предлагаешь считать? И что передать недовольным твоим
 DY выбором?

 ?? (дня месяца)

 DY EXTRACT (DAY FROM ...)
А так можно определить какой день недели( понедельник, вторник, ...)?


With best regards, Игорь Горбонос.  E-mail: [EMAIL PROTECTED]




Re: DayOfWeek

2007-04-11 Пенетрантность Sergiy S. Tkachenko


Alex Cherednichenko пишет:

Чем тебе EXTRACT() не угодил?..


пример.
нужно выбрать документы за текущую неделю.
WHERE doucment_date BETWEEN date1 AND date2
нужно соответственно узнать дату начала недели (date1) и конца недели (date2)
с помощью выше указанной функции это можно сделать вот так
(также используется стандартная из FB_UDF ADDDAY)

SELECT
  ADDDAY(CURRENT_TIMESTAMP, ((SELECT DOW(CURRENT_TIMESTAMP) FROM RDB$DATABASE)-2)*-1) AS 
WeekBegin,
  ADDDAY(CURRENT_TIMESTAMP, (8-(SELECT DOW(CURRENT_TIMESTAMP) FROM RDB$DATABASE))) AS 
WeekEnd,
  ADDDAY(
ADDDAY(CURRENT_TIMESTAMP, ((SELECT DOW(CURRENT_TIMESTAMP) FROM 
RDB$DATABASE)-2)*-1)
, -7) AS PrevWeekBegin,
  ADDDAY(
ADDDAY(CURRENT_TIMESTAMP, ((SELECT DOW(CURRENT_TIMESTAMP) FROM 
RDB$DATABASE)-2)*-1),
-1) AS PrevWeekEnd
  FROM RDB$DATABASE



Re: DayOfWeek

2007-04-11 Пенетрантность Sergiy S. Tkachenko


Dmitry Yemanov пишет:

С какого дня предлагаешь считать? И что передать недовольным твоим выбором?

считать можно так, как уже заведено в TCTimeStructure (tm_wday : integer;  // 
Weekday (0--6) Sunday = 0))
чтобы с isc_decode_date не расходилось



Re: DayOfWeek

2007-04-11 Пенетрантность Sergiy S. Tkachenko


Alexander A. Venikov пишет:

RTFM extract(weekday from...), extract(day from...)

спасибо



Re: DayOfWeek

2007-04-11 Пенетрантность WildSery

On Wed, 11 Apr 2007 11:33:11 +0400, Sergiy S. Tkachenko [EMAIL PROTECTED] 
wrote:
 пример.
 нужно выбрать документы за текущую неделю.
 WHERE doucment_date BETWEEN date1 AND date2
 нужно соответственно узнать дату начала недели (date1) и конца недели (date2)
 с помощью выше указанной функции это можно сделать вот так

Во-первых, неправильно. У тебя будет не ровно начало недели, а +время ещё, т.к. 
TIMESTAMP
Во-вторых,
CAST(CURRENT_TIMESTAMP - EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 AS DATE) 
AS WeekBegin,
и так далее.


-- 
Сергей Смирнов.



Re: DayOfWeek

2007-04-11 Пенетрантность Sergiy S. Tkachenko


Boulitchev Aleksey пишет:

дарю, прокатит даже на IB40 :)

Спасибо, интересный вариант, особенно для повышения своей квалификации.



Re: DayOfWeek

2007-04-11 Пенетрантность Dmitry Yemanov


Oleg LOA wrote:


Дима, там реализация ЕДИНСТВЕННО верная. О каких вариациях ты говоришь?


Я знаю как минимум три алгоритма подсчета номера недели в году, 
используемых в разных странах и/или сферах. Единственный стандартный из 
них, ISO-8601, никак не идеален, т.к. 01-Jan-2006 в нем относится к 52-й 
неделе 2005 года.


Вопрос: как делать? В том же MySQL вообще две функции возврата WEEK, 
одна соответствует ISO-8601, вторая US-совместимая.



--
Дмитрий Еманов



Re: DayOfWeek

2007-04-11 Пенетрантность Oleg LOA
Dmitry Yemanov [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED]
 
 Вопрос: как делать? В том же MySQL вообще две функции возврата WEEK, 
 одна соответствует ISO-8601, вторая US-совместимая.

Дим я клнечно всё понимаю, то сложно завести пару дополнительных ключевых слов 
в extract чтобы удовлетворить все сексуальные амбиции?  Сделай как в Ya чтобы 
не думать, а там посмотрим на тех кому эта реализация непонравится.

Re: DayOfWeek

2007-04-11 Пенетрантность Alexander A. Venikov


Hello, Игорь!
You wrote to Dmitry Yemanov on Wed, 11 Apr 2007 10:33:03 +0300:

DY EXTRACT (DAY FROM ...)
ИГ А так можно определить какой день недели( понедельник, вторник, ...)?
Чукча не читатель, чукча писатель? :) extract (weekday...

Удач
--
Alexander A. Venikov, Tobolsk, Russia
Real e-mail address is venixangry_dogtndottobdotru 





Re: DayOfWeek

2007-04-11 Пенетрантность Alexander A. Venikov


Hello, Dmitry!
You wrote  on Wed, 11 Apr 2007 18:53:46 +0400:

 Дима, там реализация ЕДИНСТВЕННО верная.
 О каких вариациях ты говоришь?
DY Я знаю как минимум три алгоритма подсчета номера
DY недели в году, используемых в разных странах и/или
DY сферах. Единственный стандартный из них, ISO-8601,
DY никак не идеален, т.к. 01-Jan-2006 в нем относится к
DY 52-й неделе 2005 года.
DY Вопрос: как делать? В том же MySQL вообще две
DY функции возврата WEEK, одна соответствует
DY ISO-8601, вторая US-совместимая.
Так и делать - два (3, 4...) ключевых слова в extract - одно для одного 
стандарта, второе для другого. И т.д. Пока все сексуальные амбиции :) не 
будут удовлетворены.


Удач
--
Alexander A. Venikov, Tobolsk, Russia
Real e-mail address is venixangry_dogtndottobdotru 





Re: DayOfWeek

2007-04-10 Пенетрантность WildSery

On Sat, 20 Jan 2007 15:08:30 +0300, Sergiy S. Tkachenko [EMAIL PROTECTED] 
wrote:
 Привет всем.
 Планируется ли реализация в FB_UDF функций определений дня недели (дня месяца)
 DOW (DOM) ?

А нафига, если есть EXTRACT?

-- 
Сергей Смирнов.



Re: DayOfWeek

2007-04-10 Пенетрантность Alex Cherednichenko

Привет, Sergiy!
Вы пишешь  20 января 2007:

 SST Планируется ли реализация в FB_UDF функций определений дня недели (дня 
месяца)
 SST DOW (DOM) ?

Чем тебе EXTRACT() не угодил?..

--
With best regards, Alex Cherednichenko.




Re: DayOfWeek

2007-04-10 Пенетрантность Dmitry Yemanov


Sergiy S. Tkachenko wrote:


Планируется ли реализация в FB_UDF функций определений дня недели


С какого дня предлагаешь считать? И что передать недовольным твоим выбором?


(дня месяца)


EXTRACT (DAY FROM ...)


--
Дмитрий Еманов



Re: DayOfWeek

2007-04-10 Пенетрантность Alexander A. Venikov


Hello, Sergiy!
You wrote  on Sat, 20 Jan 2007 14:08:30 +0200:

SST Планируется ли реализация в FB_UDF функций определений
SST дня недели (дня месяца) DOW (DOM) ?
RTFM extract(weekday from...), extract(day from...)

Удач
--
Alexander A. Venikov, Tobolsk, Russia
Real e-mail address is venixangry_dogtndottobdotru 




---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 000731-1, 08.04.2007
Tested on: 11.04.2007 9:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com