Stack Overflow на русском Asked by 13_Voin on February 22, 2021
Можно ли сделать запрос чтобы вычислить стаж работы (лет, месяцев, дней)?
В таблице есть дата рождения, прием на работу и увольнение, у нескольких человек есть дата увольнения у других null
.
К примеру если дата увольнения null
то использовать (берется) текущую дату. Текущая дата – 09.02.2021
Пример таблицы SQLite
В итоге он должен показать дaнные (пример):
1 строка – 5 лет 8 месяцев 27 дней
2 строка – 12 лет 10 месяцев 29 дней
3 строка – 6 лет 10 месяцев 19 дней
Возраст по дате рождения я разобрался как определить
SELECT last_name, first_name, third_name, data_r, strftime('%Y-%m-%d', 'now') - strftime('%Y-%m-%d', data_r) as vik FROM dovidnyk WHERE strftime('%d-%m', data_r) = strftime('%d-%m', 'now')
Используя ifnull
и julianday
:
select
last_name,
first_name,
third_name,
data_p,
data_z,
alldays / 365 as years,
alldays % 365 / 30 as month,
alldays % 365 % 30 as days
from (select
last_name,
first_name,
third_name,
data_p,
data_z,
CAst((julianday(ifnull(data_z, 'now')) - julianday(data_p)) as Integer) as alldays
from dovidnyk)as t;
Вывод:
last_name first_name third_name data_p data_z years months days
family0 name0 father0 2013-03-12 00:00:00 2015-03-12 00:00:00 2 0 0
family1 name1 father1 2013-03-12 00:00:00 2015-04-12 00:00:00 2 1 1
family2 name2 father2 2010-03-12 00:00:00 null 10 11 9
family3 name3 father3 2017-03-12 00:00:00 2018-01-21 00:00:00 0 10 15
family4 name4 father4 2018-01-01 00:00:00 2018-12-31 00:00:00 0 12 4
Correct answer by TigerTV.ru on February 22, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP