datetime类型字段累加原则上可以直接使用sum函数的,例如:
成都创新互联是工信部颁发资质IDC服务器商,为用户提供优质的成都温江机房服务
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类型字段进行累加,选取其中的单纯一种时间单位数(如日数、时数、秒数等)后再进行累加,才会有意义
逐行累加,最好是在应用程序端用编程的方法解决。数据库端用SQL语句实现累加需求,数据表须要有一个自增ID列,但是系统开销会比较大。下面是示范语句供参考:
-- 利用自增id列实现累加SQL语句
select t.*,
(select sum(num) from test where id=t.id)
as AcmNum from test t;
源表数据如图
累加运行效果如图
1、在单元格A1中输入数字1,向下拖动填充到100行。
2、选择“填充序列”。填充后数字变为1到100的数字。
3、选择A1到A101单元格,选好后,按住Alt+=组合键,进行求和。
4、最后求得和为5050。
5、在单元格A1中输入数字1,点击开始选显卡下的“填充”,选择“序列”。
6、弹出序列对话框,选择“列”,“等差数列”,步长值为1,终止值为100,“确定”。
7、此时,单元的中已自动创建好1到100的序列数。
8、选择A1到A101单元格,选好后,按住Alt+=组合键,进行求和。
9、此法最为迅速,只需在单元格内输入公式“=SUM(ROW(1:100))”,注意不包括引号,然后按住Ctrl+Shift+Enter组合键,很迅速的就能求出1累加到100之和。