2013-10-13 3 views
0

У меня есть следующие схемы базы данных Факты (ReportNo, REPORTNAME, Load_Date)SQL Вычислить номер недели от столбца даты

Load_Date является столбец (номер типа) и имеет записи даты в Формат YYYYMMDD.

Мне нужно напечатать номер недели для каждой строки, используя уже существующие даты в Load_Date. Поскольку он уже имеет тип номер, мне не нужно его переводить с даты на char.

Выход должен быть ** Номер недели | ReportNo | ReportName

+1

Уточнитните 'номер недели' - ISO неделю из года? неделю (каждые 7 дней с 1 января)? Неделя месяца? Или что-то другое? Кроме того, обратите внимание, что сохранение дат в числовом формате требует неприятностей - вы отказываетесь от встроенной проверки достоверности, не обращая внимания на то, что дата/время на самом деле не работают. Фактически, любой расчет «недельного номера», отличный от «недели месяца» (в зависимости от дней с начала месяца), заставит вас перевести на «тип даты», если вы не хотите сделать какую-то безумную математику, чтобы понять это (следующее значение после 20130228 равно 20130301) –

ответ

0

попробовать

select ReportNo,ReportName,to_char(to_date(Load_Date,'yyyymmdd'),'ww') from Facts 
+0

Возможно, стоит отметить, что результат to_char (, 'ww') зависит от локали. –

Смежные вопросы