2016-08-30 2 views
0

У меня есть столбец (EOM) в моей таблице (Employee), который дает последний день месяца как целое число, и я хочу вернуть количество дней в месяце. Я знаю, что мы можем обычно использовать встроенные функции, но поскольку DATE, который у меня есть, сохраняется как int, они не будут работать. Может ли кто-нибудь помочь мне с этим?Рассчитать количество дней с даты, представленной как целое

EmpID EmployeeName EOM 
123  ABC   20160731 
345  XYZ   20150228 

Я хочу знать, сколько дней, которые говорят сотрудников ABC работал которая 31.

+4

(1) Редактировать свой вопрос и показать образцы данных и желаемые результаты; (2) Пометьте свой вопрос в базе данных, которую вы используете. –

+5

Почему вы храните даты в виде цифр, а не в соответствующем столбце 'DATE'? –

+0

@ GordonLinoff прав - нам нужно знать, какие dbms вы используете - ответ SQL Server, скорее всего, будет отличаться от postgresql. Это касается практически любого вопроса SQL. – Jeff

ответ

1

Если у вас есть последний день месяца в колонке УД, то вы можете просто взять последние 2 символа из столбца EOM, который даст вам количество дней в месяце.

SELECT SUBSTRING(EOM,7,2) FROM EMPLOYEE 

ИЛИ

SELECT CONVERT(INT,SUBSTRING(EOM,7,2)) FROM EMPLOYEE 

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

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