当前位置:网站首页>零基础自学SQL课程 | SQL中的日期函数大全
零基础自学SQL课程 | SQL中的日期函数大全
2022-06-28 21:28:00 【游戏编程】
大家好,我是宁一。
今天是我们的第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 函数。
点击 关注 ,更新课程第一时间通知哦~
作者:喵宁一
游戏编程,一个游戏开发收藏夹~
如果图片长时间未显示,请使用Chrome内核浏览器。
边栏推荐
- Leetcode daily question - 710 Random numbers in the blacklist
- Automatic operation and maintenance platform based on Apache APIs
- Ref attribute, props configuration, mixin mixing, plug-in, scoped style
- LeetCode877. 石子游戏
- LeetCode188. 买卖股票的最佳时机IV
- Lumiprobe proteorange protein gel dye instructions
- 开通挖财账号安全吗?是靠谱的吗?
- 职场小技巧 | 了解岗位优势三板斧之“识人”
- 【筆記:模擬MOS集成電路】帶隙基准(基本原理+電流模+電壓模電路詳解)
- 【笔记:模拟MOS集成电路】带隙基准(基本原理+电流模+电压模电路详解)
猜你喜欢

Interface use case design

Alibaba cloud MSE full link grayscale solution practice based on Apache apisik

Anti rabbit dylight 488 abbkine universal immunofluorescence (if) toolbox

题解 Pie(POJ3122)超详细易懂的二分入门

Activate function

with torch. no_ Grad(): reason for using

postman简介与安装步骤

Bitbucket 使用 SSH 拉取仓库失败的问题

Query rewriting for opengauss kernel analysis

Automatic operation and maintenance platform based on Apache APIs
随机推荐
Leetcode daily question - 515 Find the maximum value in each tree row
题解 The SetStack Computer(UVa12096)紫书P116STL的综合应用
Anr analysis - question 1
SqlTransaction
Leetcode: merge K ascending linked lists_ twenty-three
精通数据分析能力,收入翻倍?什么才是最强竞争力
Globalsign's Pan domain SSL certificate
16 `bs对象.节点名div.属性contents` children descendants 获取子节点 子孙节点
The blocks problem (uva101) Purple Book p110vector application
开通股票炒股账号安全吗?是靠谱的吗?
力扣树的进一步应用
LeetCode117. Populate the next right node pointer for each node_ II
Usage example of qjsonobject
开通挖财账号安全吗?是靠谱的吗?
题解 Ananagrams(UVa156)紫书P113map的应用
Leetcode daily question - 710 Random numbers in the blacklist
【读书会第13期】视频文件的封装格式
Leetcode daily question - 30 Concatenate substrings of all words
Lumiprobe lumizol RNA extraction reagent solution
题解 Pie(POJ3122)超详细易懂的二分入门