до комплекса неполноценности тоже надо дорасти (с)
ищу помощь
sql
субд oracle
задача: из данной даты вытянуть месяц и год. в переменную типа date занести число, равное 1, месяц, равный месяцу заданной даты, и год, такой же из заданной даты
как реализовать такой код?? нужно срочно. если кто-то с таким сталкивался, чирканите ответ - буду очч признательна
sql
субд oracle
задача: из данной даты вытянуть месяц и год. в переменную типа date занести число, равное 1, месяц, равный месяцу заданной даты, и год, такой же из заданной даты
как реализовать такой код?? нужно срочно. если кто-то с таким сталкивался, чирканите ответ - буду очч признательна
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% рабочесть последнего не поручусь.
Ммать, почти всё за каких-то полгода забыл...
Если не секрет, что пишешь и какая версия Оракля?
версия 9
собственно, я потом уже подумала, что можно дату перевести в чар, поменять что надо и чар обратно в дату конверктировать
а что скажете на счет такого: tq := trunc(YourDate,'MM'); ??
скажи, если прокатит.