18:52

!!

до комплекса неполноценности тоже надо дорасти (с)
ищу помощь

sql

субд oracle

задача: из данной даты вытянуть месяц и год. в переменную типа date занести число, равное 1, месяц, равный месяцу заданной даты, и год, такой же из заданной даты



как реализовать такой код?? нужно срочно. если кто-то с таким сталкивался, чирканите ответ - буду очч признательна

Комментарии
11.05.2006 в 21:04

Fire in a hole!
> из данной даты вытянуть месяц и год

SELECT

EXTRACT (MONTH FROM datefield) AS m,

EXTRACT (YEAR FROM datefield) AS y

[INTO a_month, a_year]

FROM sometable

WHERE something



В квадратных скобках — если надо использовать в PL/SQL. a_month и a_year естеснно должны быть определены)







> в переменную типа date занести число, равное 1, месяц, равный месяцу заданной даты, и год, такой же из заданной даты

PHP:

1. $date = "01-$month-$year" $month и $year выдёргиваются из даты на уровне бизнес-логики

2. $sql = "UPDATE sometable SET datefield = TO_DATE('$date', 'DD-MM-YYYY') WHERE something";

3. отдать $sql в БД



или

PL/SQL:

CREATE OR REPLACE PROCEDURE set_first_day(in_date IN DATE)

IS

a_month INTEGER;

a_year INTEGER;

BEGIN

a_month := EXTRACT (MONTH FROM in_date);

a_year := EXTRACT (YEAR FROM in_date);

UPDATE sometable SET datefield = TO_DATE('01-' || TO_CHAR(a_month, '00') || '-' || TO_CHAR(a_year, '0000'), 'DD-MM-YYYY') WHERE something;



END;



Примерно так, за 100% рабочесть последнего не поручусь.



Ммать, почти всё за каких-то полгода забыл...





Если не секрет, что пишешь и какая версия Оракля?
12.05.2006 в 16:42

до комплекса неполноценности тоже надо дорасти (с)
Neiru, пишу процедуру, которую потом надо будет зайдествовать при составлении шаблона отчета "по сомнительной и безнадежной задолжненности". а этот отчет в свою очередь задействуется Парусом



версия 9
12.05.2006 в 16:49

до комплекса неполноценности тоже надо дорасти (с)
зы: спасибо превиликое.

собственно, я потом уже подумала, что можно дату перевести в чар, поменять что надо и чар обратно в дату конверктировать



а что скажете на счет такого: tq := trunc(YourDate,'MM'); ??

12.05.2006 в 16:55

Fire in a hole!
не знаю, не пробовал))

скажи, если прокатит.
12.05.2006 в 17:48

до комплекса неполноценности тоже надо дорасти (с)
Neiru, окей. жди комментов (: