Re: DayOfWeek
Hello, SST Планируется ли реализация в FB_UDF функций определений дня недели (дня месяца) SST DOW (DOM) ? Самая полезная ссылка на эту тему: http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm -- Oleg
Re: DayOfWeek
WildSery пишет: Во-первых, неправильно. У тебя будет не ровно начало недели, а +время ещё, т.к. TIMESTAMP Во-вторых, CAST(CURRENT_TIMESTAMP - EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 AS DATE) AS WeekBegin, с полями типа DATE замечательно работает и без этих преобразований. время сервер сам откидывает (или не учитывает) при выборке
Re: DayOfWeek
On Thu, 12 Apr 2007 16:27:05 +0400, Sergiy S. Tkachenko [EMAIL PROTECTED] wrote: с полями типа DATE замечательно работает и без этих преобразований. время сервер сам откидывает (или не учитывает) при выборке Зависит от диалекта, опять же. -- Сергей Смирнов.
Re: DayOfWeek
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
Hello, Dmitry Yemanov! You wrote on Wed, 11 Apr 2007 00:29:14 +0400: Планируется ли реализация в FB_UDF функций определений дня недели DY С какого дня предлагаешь считать? И что передать недовольным твоим DY выбором? предлагаю с любого, но возвращать 'пн','вт','ср','чт','пт','сб','вс'! другие народы пусть сами переводят с олбанского :-) Фёдоров Евгений. ЗАО Трест-М. Екатеринбург.
Re: DayOfWeek
Привет всем. Планируется ли реализация в 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
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
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
Dmitry Yemanov пишет: С какого дня предлагаешь считать? И что передать недовольным твоим выбором? считать можно так, как уже заведено в TCTimeStructure (tm_wday : integer; // Weekday (0--6) Sunday = 0)) чтобы с isc_decode_date не расходилось
Re: DayOfWeek
Alexander A. Venikov пишет: RTFM extract(weekday from...), extract(day from...) спасибо
Re: DayOfWeek
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
Boulitchev Aleksey пишет: дарю, прокатит даже на IB40 :) Спасибо, интересный вариант, особенно для повышения своей квалификации.
Re: DayOfWeek
Oleg LOA wrote: Дима, там реализация ЕДИНСТВЕННО верная. О каких вариациях ты говоришь? Я знаю как минимум три алгоритма подсчета номера недели в году, используемых в разных странах и/или сферах. Единственный стандартный из них, ISO-8601, никак не идеален, т.к. 01-Jan-2006 в нем относится к 52-й неделе 2005 года. Вопрос: как делать? В том же MySQL вообще две функции возврата WEEK, одна соответствует ISO-8601, вторая US-совместимая. -- Дмитрий Еманов
Re: DayOfWeek
Dmitry Yemanov [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Вопрос: как делать? В том же MySQL вообще две функции возврата WEEK, одна соответствует ISO-8601, вторая US-совместимая. Дим я клнечно всё понимаю, то сложно завести пару дополнительных ключевых слов в extract чтобы удовлетворить все сексуальные амбиции? Сделай как в Ya чтобы не думать, а там посмотрим на тех кому эта реализация непонравится.
Re: DayOfWeek
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
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
On Sat, 20 Jan 2007 15:08:30 +0300, Sergiy S. Tkachenko [EMAIL PROTECTED] wrote: Привет всем. Планируется ли реализация в FB_UDF функций определений дня недели (дня месяца) DOW (DOM) ? А нафига, если есть EXTRACT? -- Сергей Смирнов.
Re: DayOfWeek
Привет, Sergiy! Вы пишешь 20 января 2007: SST Планируется ли реализация в FB_UDF функций определений дня недели (дня месяца) SST DOW (DOM) ? Чем тебе EXTRACT() не угодил?.. -- With best regards, Alex Cherednichenko.
Re: DayOfWeek
Sergiy S. Tkachenko wrote: Планируется ли реализация в FB_UDF функций определений дня недели С какого дня предлагаешь считать? И что передать недовольным твоим выбором? (дня месяца) EXTRACT (DAY FROM ...) -- Дмитрий Еманов
Re: DayOfWeek
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