MySQL - сумма цифр года - PullRequest
       2

MySQL - сумма цифр года

0 голосов
/ 05 апреля 2020

Мне нужно получить сумму цифр года в формате date, например 1997 = 1+9+9+7 = 26. Я должен сделать это в MySQL только с SELECT. Я пытался использовать функцию SUM, но она суммирует только годы в нескольких строках.

Имя таблицы: список.

enter image description here

В phpMyAdmin я выполняю следующую команду и получаю следующие результаты:

enter image description here

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Или вы можете использовать что-то вроде этого. Результат для 1997-01-01

SELECT @result:=
    @First:= LEFT(year,1)+
    @Second:= SUBSTRING(year,2,1)+ 
    @Third:= SUBSTRING(year,3,1)+
    @forth:= SUBSTRING(year,4,1) 
FROM year;

    ---

    **Query #1**

    SELECT * FROM year;

| id  | year       | result |
| --- | ---------- | ------ |
| 1   | 1997-01-01 |        |
| 2   |            | 26     |

    ---

Показать на БД Fiddle

1 голос
/ 05 апреля 2020

Вы можете сделать арифметику для этого:

set @year = 1997;    
select 
    floor(@year / 1000) 
    + floor(@year % 1000 / 100) 
    + floor(@year % 100 / 10)
    + floor(@year % 10) res

Выход:

26

Начиная со значения date или datetime, вы можете использовать year() для извлечения первая часть года:

set @mydate = '1997-01-01';    
select 
    floor(year(@mydate) / 1000) 
    + floor(year(@mydate) % 1000 / 100) 
    + floor(year(@mydate) % 100 / 10)
    + floor(year(@mydate) % 10) res
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...