sum函数,date类型

sum函数,date类型

sum函数,date类型不是毫秒数相加,而是字符串里面的数字相加,我显示的是这样子,不知道是不是老是讲错了

39611437,这是结果,计算器减去19801217就是19810220

select empno,sum(hiredate)

from t_emp

where empno =7369 or empno=7499



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手乔木 2019-11-29 14:04:37

同学你好:

老师说的没有错误, 原因在于date类型的数据存储在数据库中时并进行sum( )聚合时 date类型数据会被转化为timestamp类型(秒),还是时间类型,因此无法做出有意义的计算。

官网:

http://img1.sycdn.imooc.com//climg/5de0b3fd095ad8fd05430037.jpg

在SUM()和 AVG()聚合函数不具有时间价值的工作。

http://img1.sycdn.imooc.com//climg/5de0b2ba09d4aded10950137.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

  • 提问者 落花流水11 #1
    可是我对1980-12-17,1981-02-20进行sum函数运算,它显示是39611437(3961-14-37),不是毫秒数相加呀
    2019-11-29 14:33:45
  • 好帮手乔木 回复 提问者 落花流水11 #2
    同学你好:首先他得到的是无意义的数据。sum聚合函数只对数字类型进行有意义的求和运算。时间类型无法使用sum进行有意义运算,由于同学依然使用sum进行求和,所以这个字段中的数据会把特殊的字符去掉得到没有任何意义数字结果(此时已不代表时间了就是一串数字)。然后进行求和。链接:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-type-overview.html 。如果我解决了同学的问题,请采纳!学习愉快^_^。
    2019-11-29 17:27:26
  • 提问者 落花流水11 回复 好帮手乔木 #3
    我知道没意义,但是这并不是毫秒数对吗
    2019-11-29 19:54:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师