零基础自学SQL课程 | SQL中的日期函数大全

article/2025/8/9 4:09:39

大家好,我是宁一。

今天是我们的第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 Students
WHERE YEAR(Sage) = 1995

我们之前也做过这个题,用BETWEEN…AND…实现的,可以点击主页找到第五讲--WHERE条件子句复习一下~

2、格式化日期函数

我们主要使用 DATE_FORMAT、TIME_FORMAT函数对日期和时间进行格式化,来看看具体用法。

SELECTNOW() AS "现在时间",DATE_FORMAT(NOW(), '%Y.%m.%d') AS '格式化日期',TIME_FORMAT(NOW(), '%h:%i:%s') AS '格式化时间'

可以使用的格式有:

3、计算日期函数

实际业务中,我们经常要计算日期和时间,比如在日期基础上增加减少一天,或者计算日期间隔,来看看具体用法。

在日期基础上增加减少天数:

SELECTNOW() AS "现在时间",DATE_ADD(NOW(), INTERVAL 1 DAY) AS "增加1天",DATE_SUB(NOW(), INTERVAL 1 DAY) AS "减少1天"

还可以增加减少年、月、小时、分钟:

SELECTNOW() 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小时"

计算两个日期间隔天数:

SELECTDATEDIFF('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数值函数,取小于年龄的大整数。

SELECTDATE_FORMAT(NOW(),'%Y-%m-%d') AS '今天日期',Sname AS '学生姓名',FLOOR(DATEDIFF(NOW(),Sage)/365) AS "学生年龄"
FROM Students;

要注意上面这些函数不是标准SQL语句,而是MySQL软件中内置的函数,在Oracle、或者SQL Server中不一定通用。

下节课我们讲讲 IF 函数。

点击关注,更新课程第一时间通知哦~


http://chatgpt.dhexx.cn/article/0o8Hyn4n.shtml

相关文章

SQL数据库的导入和导出

SQL数据库的导入和导出 一、数据库数据的导出 右键要导出数据的数据库→任务→导出数据 点击下一步 选择数据源,默认点击下一步即可 安装需要导出文件类型(此处以EXCEL为例) 选择导出EXCEL文件的路径和名称 原因全部导出,点击下一…

sql连接本地数据库

sql连接本地数据库 安装好SQL 2008后,界面只有已安装的包和正在运行的包 左侧没有数据库,无法进行数据库操作. 这是因为打开软件后,会提示连接一个东西,连接的时候按照默认的话就会连接错。如果出现提示连接成功后的界面只有两个文…

QT-8-使用SQL数据库

数据库(掌握) Qt本身并没有数据库,但是Qt支持市面上绝大多数主流的数据库的连接,前提是运行Qt的电脑上也有对应的数据库产品。 在嵌入式领域、纯软件客户端领域都在使用SQLite数据库作为程序本地数据存储的方式。原因在于SQLite…

SQLServer数据库还原

百度上只有水文,一路下一步,毫无参考价值,只能自己写下来,帮助下童鞋们,上图 找到大门! 这里1号框框为备份文件的路径,就是在备份一文中备份的文件,不知道就去看看,或者继…

sql服务器密码如何显示,如何查看sql数据库密码

如何查看sql数据库密码 内容精选 换一换 tempdb是系统数据库,是一个全局资源,可供连接到 SQL Server 实例或 SQL 数据库的所有用户使用 。它是一个临时数据库,无法永久保存数据,作用是给实例中的各种请求处理中间数据,分为主数据文件(.mdf)、次要数据文件(.ndf)和日志文件…

VS连接SQL server数据库

目录 连接数据库 使用dataGridView控件显示表中的数据。 实现基本CRUD操作 连接数据库 打开vs,点击 视图,打开sql资源管理器,添加SQL Server 输入服务器名称,用户名,密码,进行连接。 如图,就…

sql mysql 删除数据库_如何清除SQL数据库中的数据?

展开全部 清除SQL数据库中的数据可以按照以下步骤进行: 1.首先需要注意的是,在删除数据库文件时,直接进636f707962616964757a686964616f31333365666165入文件夹删除数据库文件,这种行为是十分不准确的。 2.SQL Server中的数据库文…

VB.NET连接SQL数据库

VB.NET与SQL数据库的数据互通 一、准备工作二、VB.NET操作、代码、可能遇到的问题等 一、准备工作 ①本地网络连接的IP地址; ②已安装好的SQL软件(本例使用SQL2014); ③已安装好的Visual Studio 2019软件; ④用于VB.NET连接的数据库(登录名称…

解决SQL数据库无法附加

在附加数据库时遇到“附加数据库出错”。 1.在文件夹中查看需要附加的数据库:2.右键选择“属性”并选择“安全”选项卡:3.点击“编辑”后选择“添加”:4.输入“eve”后点击“检查名称”:5.确定后选中“Everyone”并勾选“完全控制…

SQL 数据库突然变成可疑

如图所示: 服务器上的数据库突然变成可疑,并且打不开。 解决办法: 1、先停掉数据库服务。 2、找到这个数据主数据文件和日志文件所在的位置,并把它们拷贝到一个新的地方(不停数据库服务,文件是禁止拷贝的…

sql数据库 ‘xxxxxx‘ 已存在,请选择其他数据库名称

出现这种报警是因为数据库中已经有了该数据库,因此我们可以重新命名。当然,我们也可以删除已有的数据库,有两种方法: 1、手动删除数据库 选中【数据库】,单击鼠标右键选择【刷新】,如下图所示,…

WinCC读取SQL数据库案例

使用场景:主线上有一台WinCC上位机,各单元有触摸屏,其中WinCC中存储用于自动化产线生产相关的配方数据,在自动生产模式时,将配方数据下发给各单元,在单元脱机模式时,单元内部触摸屏可选择要生产…

如何彻底修改SQL server的数据库名

公司自有的云服务器上的SQL server数据库里,建立了不少项目的数据库,最近需要把一个项目的最新版本代码同步到服务器上,发现本地使用的数据库名,在云服务器上已经存在了,且被用于开发其他项目的demo,为了保…

领域驱动设计在讲什么

概述 概念可以简单描述某类事物,这类事物可以是实体也可以是问题。领域驱动设计是为了管理系统复杂性问题而生的一套方法论。 随着业务系统的复杂性不断提高,系统的性能和灵活性要求也会越来越高,如何构建一个扩展性强、可用性高的业务系统…

SpringBoot-DDD领域驱动设计的概念

SpringBoot-DDD领域驱动设计的概念 大家都知道软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前通常需要进行大量的业务知识梳理,然后才能到软件设计的层面,最后才是开发。而在业务…

领域驱动设计--领域驱动设计到数据建模实践(十)

----- 学习笔记 ----- 过去,系统的软件设计是以数据库设计为核心,当需求确定下来以后,团队首先开始进行数据库设计。因为数据库是各个模块唯一的接口,当整个团队将数据库设计确定下来以后,就可以按照模块各自独立地进行…

领域驱动模型设计(二)

目录 领域事件 领域、子域、核心域、通用域和支撑域 限界上下文 划分限界上下文 数据流转 上下文映射图 上下文集成 上一篇粗略地介绍了为什么需要使用领域驱动模型设计?下面我们将一一讲解下领域驱动设计中的一些比较难懂,但是却十分基础的概念…

什么是DDD(领域驱动设计)?

领域驱动设计的基本概念 领域驱动设计作为一个针对大型复杂业务系统的领域建模方法体系(不仅限于面向对象的领 域建模),它改变了传统软件开发工程师针对数据库建模的方式,通过面向领域的思维方式,将要 解决的业务概念…

实现领域驱动

什么是领域驱动? 领域驱动设计 (domain-driver-design) 是有别于MVC开发模式的一种思想,它是面向对象编程的一种表现形式,请记住:领域驱动是一种思想,而不是技术! 领域驱动核心是通过对模型抽象出属性和行…

浅析 DDD 领域驱动设计

一、前言 最近公司一场有关于领域驱动设计的技术分享会,主要讲解了服务的划分,Restful API的设计,如何将抽象具有统一业务的范畴的Model,使其模块化,同时能够提炼组合多个模块,使得业务能够独立服务化&…