mysql,time数据类型字段,怎么实现累加?

mysql,time数据类型字段,怎么实现累加?,第1张

datetime类型字段累加原则上可以直接使用sum函数的,例如:

select sum(logtime) from logRecords

尽管可以执行,但是这种对于“时刻”的累加数是没有意义的。对于mySql来说其实际算法是将datetime类型字段值按4位年、2位月、2位日、2位时、2位分、2位秒顺序组成一个数字后再进行累加。假如表中只有两条记录,登录时间分别是

logtime

2016-07-15 13:55:12

2016-07-15 13:50:20

Sum累加的结果是:40321430270532,其实是没有太多意义的,除非编写自定义函数将其转换成时间日期的显示格式,也就是两千多年后的某个日子与时间,能说明什么呢?。

一般来讲,累加“时刻”没有意义,但是累加"用时"是有意义的, 如果需要对datetime类型字段进行累加,选取其中的单纯一种时间单位数(如日数、时数、秒数等)后再进行累加,才会有意义

这个问题是需要你在建立数据库的时候进行设置的。

我们用phpmyadmin的 *** 作来解决它:

1、

用phpmyadmin打开你的数据库,找到你的表test,打开打点击打开,处于结构状态

2、

然后选择编辑id这个字段,

3、

然后会看到这个字段里有如下属性:字段

类型

长度/值

整理

属性

Null

默认

额外

4、

我们需要设置的就在这个额外中,选择下拉列表,里面只有一个选项:auto_imcrement,这就是自动累加的意思

5、

执行保存,OK,这回你再不给id这个字段进行赋值的时候,mysql会对这个字段进行自动累加。

逐行累加,最好是在应用程序端用编程的方法解决。数据库端用SQL语句实现累加需求,数据表须要有一个自增ID列,但是系统开销会比较大。下面是示范语句供参考:

-- 利用自增id列实现累加SQL语句

select t.*,

(select sum(num) from test where id<=t.id)

as AcmNum from test t

源表数据如图

累加运行效果如图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8618605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存