MahmoudOmar Ответов: 5

Как я извлекаю месяц и год из даты в oracle


я пишу этот код, но у меня есть проблема, он показывает мне эту ошибку (nvalid number):-

select count(distinct TASK_START_DATE) from prof_tasks 
inner join prof_employee_data on prof_employee_data.employee_id = prof_tasks.employee_id 
where prof_employee_data.emp_code= '12411' 
and extract(month from to_date(TASK_START_DATE,'dd/mm/yyyy')) = '01/10/2016'
and extract(year from to_date(TASK_START_DATE,'dd/mm/yyyy'))='01/10/2016' 
and allownce_id = 1


Что я уже пробовал:

я хочу выбрать счетчик за октябрь месяц из таблицы.

5 Ответов

Рейтинг:
2

Member 14900923

Из решения 5, Как насчет этого:

to_char(task_start_date, 'ггггмм')
to_number(to_char(task_start_date, 'ггггмм'))


Рейтинг:
2

Member 13317811

выберите извлечь(год из invoice_date)||извлечь(месяц из invoice_date) из fa_master2016


Рейтинг:
1

RAMASWAMY EKAMBARAM

вы можете извлечь месяц и год как:
to_char(task_start_date, 'mm') и to_char(task_start_date, 'yyyy')
а если вы хотите как числовой:
to_number(to_char(task_start_date, 'mm')) и to_number(to_char(task_start_date, 'yyyy'))


Рейтинг:
0

Patrice T

Вы должны попытаться заменить его:

select count(distinct TASK_START_DATE) from prof_tasks 
inner join prof_employee_data on prof_employee_data.employee_id = prof_tasks.employee_id 
where prof_employee_data.emp_code= '12411' 
and extract(month from to_date(TASK_START_DATE,'dd/mm/yyyy')) = '01/10/2016'
and extract(year from to_date(TASK_START_DATE,'dd/mm/yyyy'))='01/10/2016' 
and allownce_id = 1

около:
select count(distinct TASK_START_DATE) from prof_tasks 
inner join prof_employee_data on prof_employee_data.employee_id = prof_tasks.employee_id 
where prof_employee_data.emp_code= '12411' 
and extract(month from to_date(TASK_START_DATE,'dd/mm/yyyy')) = 10
and extract(year from to_date(TASK_START_DATE,'dd/mm/yyyy'))= 2016
and allownce_id = 1


Цитата:
я хочу сделать формат дата завершена как 01/10/2016 как я это делаю
Я этого не понимаю!
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Обратите внимание, что комментарии не работают, вероятно, для нас. Я вижу комментарий, но не отвечаю.


MahmoudOmar

я хочу сделать формат дата завершена как 01/10/2016 как я это делаю

Рейтинг:
0

Kornfeld Eliyahu Peter

Цитата:
При извлечении TIMEZONE_REGION или TIMEZONE_ABBR (аббревиатура) возвращаемое значение представляет собой строку, содержащую соответствующее имя часового пояса или аббревиатуру. При извлечении любого из других значений возвращаемое значение представляет собой целое число, представляющее значение даты и времени в григорианском календаре.

Поэтому, когда вы извлекаете год, вы можете проверить его не по строке типа даты, а по целому числу, представляющему год:
and extract(year from to_date(TASK_START_DATE,'dd/mm/yyyy')) = 2016;

Извлечение (дата и время)[^]