SQL日期函数大全 看这一篇就够
大家好,我是宁一。
今天是我们的第21课:SQL中的日期函数。
MySQL中内置的日期函数,包括获取日期、日期格式化、日期计算,我们分别来看看。
1、获取日期函数
MySQL内置的获取日期时间函数:
SELECT NOW() AS '当前日期+时间', CURDATE() AS '当前日期', CURTIME() AS '当前时间';
获取具体年月日函数:
SELECT YEAR("2022-04-11 15:44:28") AS '年', MONTH("2022-04-11 15:44:28") AS '月', DAY("2022-04-11 15:44:28") AS '日', HOUR("2022-04-11 15:44:28") AS '小时', MINUTE("2022-04-11 15:44:28") AS '分钟', SECOND("2022-04-11 15:44:28") AS '秒', DAYNAME("2022-04-11 15:44:28") AS '星期几', MONTHNAME("2022-04-11 15:44:28") AS '几月';
实例:在Students表中,找出生日Sage为1995年的学生记录。
SELECT *FROM StudentsWHERE YEAR(Sage) = 1995
我们之前也做过这个题,用BETWEEN…AND…实现的,可以点击主页找到第五讲--WHERE条件子句复习一下~
2、格式化日期函数我们主要使用 DATE_FORMAT、TIME_FORMAT函数对日期和时间进行格式化,来看看具体用法。
SELECT NOW() AS "现在时间", DATE_FORMAT(NOW(), '%Y.%m.%d') AS '格式化日期', TIME_FORMAT(NOW(), '%h:%i:%s') AS '格式化时间'
可以使用的格式有:
3、计算日期函数实际业务中,我们经常要计算日期和时间,比如在日期基础上增加减少一天,或者计算日期间隔,来看看具体用法。
在日期基础上增加减少天数:
SELECT NOW() AS "现在时间", DATE_ADD(NOW(), INTERVAL 1 DAY) AS "增加1天", DATE_SUB(NOW(), INTERVAL 1 DAY) AS "减少1天"
还可以增加减少年、月、小时、分钟:
SELECT NOW() AS "现在时间", DATE_ADD(NOW(), INTERVAL 1 YEAR) AS "增加1年", DATE_SUB(NOW(), INTERVAL 1 MONTH) AS "减少1天", DATE_SUB(NOW(), INTERVAL 1 HOUR) AS "减少1小时"
计算两个日期间隔天数:
SELECT DATEDIFF('2022-04-11','2021-04-11') AS "间隔天数", DATEDIFF('2022-04-11 01:00','2022-04-10 23:00') AS "间隔天数"
注意DATEDIFF函数会忽略时间部分,只算日期差异,比如,上面SQL语句中04-10 23:00到04-11 01:00只差了两个小时,但是用DATEDIFF函数会计算时间间隔为1天。
作业:在Students表中,通过学生生日Sage,计算每个学生的年龄,最终显示今天日期、学生姓名、学生年龄3列。
作业解析:通过DATEDIFF函数,计算今天与学生生日Sage相差的天数,除以365得到年数,再通过FLOOR数值函数,取小于年龄的大整数。
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') AS '今天日期', Sname AS '学生姓名', FLOOR(DATEDIFF(NOW(),Sage)/365) AS "学生年龄"FROM Students;
要注意上面这些函数不是标准SQL语句,而是MySQL软件中内置的函数,在Oracle、或者SQL Server中不一定通用。
下节课我们讲讲 IF 函数。
点击关注,更新课程第一时间通知哦~
如何对应农历生日找到自己的“中国星座”,你知道吗?
“哎,你是什么星座的啊?”星座对于今天的大家毫不陌生,是个聊天活跃气氛的好话题,还可以用来分析性格特征、思维特点,甚至是姻缘运势……大家想必都知道自己生日对应的是什么星座,但整套星座的体系如何、中国的“星座”是什么样、如何对应农历生日找到自己的“中国星座”,你知道吗?
给星星们定定规矩、分分地盘现在大家知道的西方占星理论,其实叫做“黄道十二宫”。这是因为,太阳、月亮和太阳系的行星,有一个穿行路线,叫做“黄道”。将其划分为十二个均等区域,以公转的地球宝宝为参照,就可以看到太阳在12个黄道星座中运动。
而在中国的星星,也免不了按照黄道划成12个等分的命运安排,然后被叫做“12星次”,与24节气紧密相关。每年隆冬时节为起点,按照节气的先后顺序,走一个轮回。
你的生日对应什么星12个星次每一个都对应着一段时间,但具体的日期会因为岁差(冬至点向后移动造成太阳回归年短于恒星年,进而引起时间长度变化的现象)而有所不同。这好比阴历的生日对应的日期,每年都会变化。所以,“中国星座”是与阴历相对应的!
快来看看自己对应的是什么星吧,格式为:星次名称、节气范围、阴历日期、对应星座
星纪—— 小寒~大寒——12月7日~1月5日 ——摩羯宫
玄枵(xuán xiāo)—— 立春~雨水—— 1月6日~2月3日 ——水瓶宫
娵訾(jū zī)—— 惊蛰~春分—— 2月4日~3月5日 ——双鱼宫
降娄(xiàng lóu)—— 清明~谷雨—— 3月6日~4月4日 ——白羊宫
大梁—— 立夏~小满—— 4月5日~5月5日 ——金牛宫
实沈—— 芒种~夏至—— 5月6日~6月5日 ——双子宫
鹑首(chún shǒu)—— 小暑~大暑—— 6月6日~7月6日 ——巨蟹宫
鹑火—— 立秋~处暑—— 7月7日~8月7日 ——狮子宫
鹑尾—— 白露~秋分—— 8月8日~9月7日 ——宫
寿星—— 寒露~霜降—— 9月8日~10月7日 ——天秤宫
大火—— 立冬~小雪——10月8日~11月8日 ——天蝎宫
析木(xī mù —— 大雪~冬至——11月9日~12月6日 ——射手宫
星星们该怎么用古人研究出这些星次,漫天繁星终于“有了规矩”,那么对人类有没有什么实用功能呢?答案是当然的。
首先,它代表的天文历法可以指导百姓耕种。
作为农耕大国,顶天大事莫过于种地。而在缺乏科技的古代,收成多半取决于天气。研究星象的高人们发现,气候变化和太阳所处位置有关。可直接测定太阳位置太难了,因为太阳晚上就不见了。而观察星象在季节中的变化,就可以间接反映出太阳的运动啦,还可以分节气来安排预测相应活动!
唐《开元占经》,十二星次分野模式
其次,依据它而成的分野制度可以使天地对应。
星星们各司其职了,地上城也不能落后。本着“天地一体”的哲学观,古人们想出了“分野”的办法:将天上的星次与地上各区域一一对应,此制度在在唐代完善。于是乎,天官夜观星象,掐指一算便仿佛知晓一切。贤人出世?天灾人祸?天上星空发生了奇异的景象,明确对应到国家的各个州府,便知什么地方发生了什么事。
司马迁《史记·天官书》,中国最早的天文研究著作之一
小新之前看到过一句话:“星星的光,走了好几个光年才来到你的面前”,说明了星光的距离之远超出想象。同样的,今天大家所见、所使用着的与天文星空有关的体系,又是经过多少年的检验推演,才来到大家面前的呢?
不论说它是占卜的结果也好,是信仰的产物也罢,唯一确定的是,它们都是古人智慧与想象的浓缩。或者说,它更像是一种哲学,是千百年来人们进步发展的宇宙观、或天人关系认识的表现。时至今日,星空神秘之美,依旧值得继续探索。