在MySql中、怎样根据年份或者月份查询数据表中的数据?

在MySql中、怎样根据年份或者月份查询数据表中的数据?,第1张

下面以比较流行的mysql图形化管理工具Navicat为例,其他工具或者在命令行中以及编程语言中 *** 作时的执行的sql语句是一样的。

1、假设在数据库中有一个名为testtest的表格,表格内容如下图所示,表中有三条记录是9月份的

2、打开一个查询窗口,输入查询语句select * from testtest where month(date)='9',该语句表示查询testtest表格中9月份的记录

3、点击“运行”执行该sql语句,在下方可以看到已经查询到了9月份的三条记录

4、如需按年查询可输入select * from testtest where year(date)='2017',2017代表需要查询的年份。如下图所示只查询到了一条记录是2017年的

下面是"Baidu百科"关于公历闰年”词条的算法说明

“闰年是公历中的名词。

普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年);

世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);

对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)。

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。”

根据上面算法用MySQL存储过程判断某个年份是否为闰年,请参考下列实验(注意:由于MySQL时间日期类型的年份取值范围为1000~9999,因此对于上述关于大数值年份的算法予以忽略)

-- 创建自定义存储函数”Is_Leap_Year“,用来判定某个年份是否为公历闰年

Drop Function if exists Is_Leap_Year

CREATE FUNCTION Is_Leap_Year (dt date) RETURNS Bit(1)

BEGIN

Declare result Bit

If Mod(Year(dt),400)=0 Or

(Mod(Year(dt),4)=0 And Mod(Year(dt),100)<>0) Then

Set result=1

Else

Set result=0

End If

RETURN result

END

-- 创建测试表并插入数据

Drop Table If Exists test

Create Table test

(id int auto_increment primary key,d1 DateTime)

Insert into test (d1) values

('2010-05-26'),('2011-06-16'),

('2012-07-23'),('2013-08-02'),

('2014-09-20'),('2015-10-27'),

('2016-11-24'),('2017-12-13')

-- 测试自定义函数Is_Leap_Year返回结果

select *,

AddDate(concat(year(d1),'-03-01'),-1)

as Last_Date_Feb_of_The_Year,

If(Is_Leap_Year(d1),'是','否')

as `Is_Leap_Year(d1)`

from test

实验截图

报告期实际支付的全部职工工资总额除报告期全部职工平均人数。求mysql求指定年份平均工资公式为报告期实际支付的全部职工工资总额除报告期全部职工平均人数。MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。


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

原文地址: https://outofmemory.cn/zaji/8418643.html

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

发表评论

登录后才能评论

评论列表(0条)

保存