【发布时间】:2020-07-17 14:58:21
【问题描述】:
我需要获取格式为date 的年份的总和,例如1997 = 1+9+9+7 = 26。我必须在 MySQL 中使用SELECT 来完成。我尝试使用SUM 函数,但它只在几行中求和。
表名:列表。
在 phpMyAdmin 中,我正在执行以下命令并得到以下结果:
【问题讨论】:
-
向我们展示您的尝试。还有你的表模式。这太笼统了。
我需要获取格式为date 的年份的总和,例如1997 = 1+9+9+7 = 26。我必须在 MySQL 中使用SELECT 来完成。我尝试使用SUM 函数,但它只在几行中求和。
表名:列表。
在 phpMyAdmin 中,我正在执行以下命令并得到以下结果:
【问题讨论】:
你可以为此做算术:
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
【讨论】:
insert into list select floor(year(mydate) / 1000) + ... from mytable
或者你可以使用这样的东西。
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 |
---
【讨论】: