Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/225: Рейтинг темы: голосов - 225, средняя оценка - 4.88
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
1

Извлечь только год из даты

10.10.2012, 22:48. Показов 40740. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Надо создать model, пример ниже, вот например у меня есть колона с датой, но там содержится день, месяц и год, могу я сделать model используя только год?
у меня allter session стоит
SQL
1
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RRRR';
везде в записях идет число-месяц-год, можно ли как-то только год для model сделать?

это чтоб понять о чем я, в примере месяц и год идут отдельно, а у меня все смете, но нужен только год
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT prd_type_id, YEAR, MONTH, sales_amount
FROM all_sales
WHERE prd_type_id BETWEEN 1 AND 2 AND emp_id = 21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (MONTH, YEAR)
MEASURES (amount sales_amount) (
sales_amount[1, 2004] = sales_amount[1, 2003],
sales_amount[2, 2004] = sales_amount[2, 2003] + sales_amount[3, 2003],
sales_amount[3, 2004] = ROUND(sales_amount[3, 2003] * 1.25, 2) )
ORDER BY prd_type_id, YEAR, MONTH;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2012, 22:48
Ответы с готовыми решениями:

Как извлечь из системной даты только текущий месяц и год
Товарищи программисты кто подскажет в условиях отбора под датой нужно прописать функцию, пример...

Как извлечь год из даты?
Добрый день, не знаю как мне рассчитать год из даты рождения, к примеру 26.06.1996 ===> 1996

Из даты нужен только год
У меня такая проблема, есть в базе поле даты, туда заноситься дата формата год-месяц-день, я...

Нужно через InputBox из даты выбрать только год
Помогите пожалуйста написать условие: 1) в одном столбце хранятся даты - нужно через inputbox из...

7
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
10.10.2012, 23:36 2
Сделайте для all_sales представление (create view), где дата будет разбита на запчасти.
Разбивать to_char(datetime, format). Примеры и форматы здесь: http://docs.oracle.com/cd/E118... nts004.htm
1
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
11.10.2012, 09:27 3
Вытаскивание года из даты:
1. более старый способ
SQL
1
2
SELECT to_char(sysdate, 'yyyy')   -- при необходимости to_number( to_char ... )
FROM dual
2. более новый способ (начиная с Ora 9):
SQL
1
2
SELECT EXTRACT(YEAR FROM sysdate)
FROM dual
2
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.10.2012, 12:36  [ТС] 4
Ничего не понял, у меня есть таблица:
SQL
1
2
3
4
5
6
7
CREATE TABLE Arsti_new2(
Arsta_ID NUMBER PRIMARY KEY,
Arsta_vards varchar2(10),
Arsta_uzvards varchar2(15),
Nodalas_num NUMBER,
dzimsanas_datums DATE,
Alga NUMBER);
потом в нее добавляю записи:
SQL
1
2
3
4
5
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RRRR';
INSERT INTO arsti_new2(arsta_id,arsta_uzvards,arsta_vards, nodalas_num,dzimsanas_datums,alga) VALUES(1,'Briķis','Jānis',NULL,TO_DATE('03-04-1986','DD-MM-RRRR'),626);
.............
.............
............
arsta_ID = ИД врача
arsta_vards = имя
arsta_uzvards = фамилия
nodalas_num = номер клиники
dzimsanas_datums = день рождения(вот тут день, месяц, год)
alga = зарплата

потом хочу создать model:
SQL
1
2
3
4
5
6
7
8
SELECT arsta_ID, dzimsanas_datums, alga
FROM arsti_new2
model
partition BY(arsta_id)
dimension BY(только год или месяц и год вытащить из dzimsanas_datums)
measures(alga alga) (
algas[год или месяц и год] = algas[......
..........
0
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
11.10.2012, 15:43 5
Сделайте для arsti_new2 представление
SQL
1
2
3
4
5
6
CREATE VIEW artsi_new2_XXX AS
  SELECT
    *,
    to_number(to_char(dzimsanas_datums, 'yyyy')) AS dzimsanas_datums_year,
    to_number(to_char(dzimsanas_datums, 'mm')) AS dzimsanas_datums_month
  FROM artsi_new2
Далее используйте его вместо основной таблицы. У вас теперь есть два новых поля с годом и месяцем.
1
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.10.2012, 16:43  [ТС] 6
Цитата Сообщение от grgdvo Посмотреть сообщение
Сделайте для arsti_new2 представление
SQL
1
2
3
4
5
6
CREATE VIEW artsi_new2_XXX AS
  SELECT
    *,
    to_number(to_char(dzimsanas_datums, 'yyyy')) AS dzimsanas_datums_year,
    to_number(to_char(dzimsanas_datums, 'mm')) AS dzimsanas_datums_month
  FROM artsi_new2
Далее используйте его вместо основной таблицы. У вас теперь есть два новых поля с годом и месяцем.
а без новой таблицы никак? а то у меня уже arsti_new2
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
11.10.2012, 16:53 7
Цитата Сообщение от Doctor_
а без новой таблицы никак? а то у меня уже arsti_new2
Это не таблица, а представление (view), т.е. всего лишь хранимый в базе запрос.
1
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.10.2012, 17:54  [ТС] 8
Цитата Сообщение от grgdvo Посмотреть сообщение
Сделайте для arsti_new2 представление
SQL
1
2
3
4
5
6
CREATE VIEW artsi_new2_XXX AS
  SELECT
    *,
    to_number(to_char(dzimsanas_datums, 'yyyy')) AS dzimsanas_datums_year,
    to_number(to_char(dzimsanas_datums, 'mm')) AS dzimsanas_datums_month
  FROM arsti_new2
Далее используйте его вместо основной таблицы. У вас теперь есть два новых поля с годом и месяцем.
Error at Command Line:3 Column:5
Error report:
SQL Error: ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"


Добавлено через 18 минут
Ошибку обошел, как теперь в model использовать созданый view, просто в from название или что-то еще надо преписыать?

Добавлено через 5 минут
Все и тут тоже разобрался)) Спасибо всем.
0
11.10.2012, 17:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2012, 17:54
Помогаю со студенческими работами здесь

Как вывести для указанной даты только год
Нужно считать с компьютера не полностью дату,а только год,и вывести его. помогите пожалуйста!

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим номером.
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти год с наименьшим...

Дан файл, содержащий различные даты. Каждая дата — это число, месяц и год. Найти год с наименьшим номером
Уважаемые, программисты, очень прошу помощи по данным заданиям. Нужно сделать кто какие сможет....

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru