当前位置: 首页 > news >正文

【Java】【SQL】DATE_FORMAT函数详解

在实际应用开发中,使用sql语句也属于开发者的一部分,这次来说说DATE_FORMAT函数。

引言:实际上在使用Java开发过程中,有很多业务场景下,都有时间类型的参数参与。前后端进行交互的时候,针对时间类型的格式都会做一个业务上的统一,方便开发且增加效率。关于后端的逻辑有两个层面可以进行优化,一个是底层sql方面,一个是业务层方面,这两者之间的处理都可以影响整个业务方法的响应时间。本次分享在sql层面使用DATE_FORMAT 函数 对时间类型数据的处理

1、简单介绍:DATE_FORMAT 是 SQL 中的一个函数,用于将日期或时间格式化为指定的格式,以下是sql形式的格式
DATE_FORMAT(date, format)

其中:
date 是要格式化的日期或时间。
format 是你希望得到的输出格式。

举例
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');常见的格式化选项有:%Y 年份,四位数
%y 年份,两位数
%m 月份,两位数
%d 日期,两位数
%H 小时,24小时制,两位数
%h 小时,12小时制,两位数
%i 分钟,两位数
%s 秒,两位数
%p AM/PM
例子中,把时间转化为 年月日格式,和电脑右下角的日期是相同的,那么针对Java中的传参怎么应用呢,以下:
@Data
public class AITimeDatePlay {@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date testTime;
}

代码中仅有一个字段,该字段上贴有2个注解,插个题外话,大概解释一下:

@DateTimeFormat :当前端丢给后端时间参数的时候,这个注解就将参数中的时间类型的样式转为我们设置的在该注解中的pattern一样。
@JsonFormat:当后端丢给前端的结果是json模式时(一般都是json),该注解会把后端结果中的时间类型参数转为我们在该注解中设置的pattern 一样。注意:需要添加时区(timezone)

重点是无论怎么丢参数,丢的都是Date类型,现在 使用sql 中 DATE_FORMAT 函数来参与业务

List<EmployeeInfo> queryInfomationByTime(AITimeDatePlay dto);
最终查询sql
<select id="queryInfomationByTime" resultType="com.bonade.hrm.foundation.model.EmployeeInfo">select *from employee_info eiwhere date_format(ei.initiation_time,'%Y-%m-%d') = DATE_FORMAT(#{testTime},'%Y-%m-%d')</select>
也可以当作字段返回,如下:
select date_format(ei.initiation_time,'%Y-%m-%d') as bigTimefrom employee_info eiwhere date_format(ei.initiation_time,'%Y-%m-%d') = DATE_FORMAT(#{testTime},'%Y-%m-%d')
也可以按照需求,只精确到年月
select date_format(ei.initiation_time,'%Y-%m') as bigTimefrom employee_info eiwhere date_format(ei.initiation_time,'%Y-%m') = DATE_FORMAT(#{testTime},'%Y-%m')

也可以输入首、尾时间,取数据库中某个时间单位是否在输入的时间段之中

select date_format(ei.initiation_time,'%Y-%m') as bigTimefrom employee_info eiwhere (((DATE_FORMAT( ei.initiation_time, '%Y-%m' )) BETWEEN  #{startTime} AND #{endTime})OR (( DATE_FORMAT( ei.leave_time, '%Y-%m' )) BETWEEN  #{startTime} AND #{endTime}))

startTime 为传入的开始时间参数,endTime 为传入的结束时间参数,这二者之间的时间段可以作为一个筛选条件,若该二者时间格式也需要调整,那么如下:

select date_format(ei.initiation_time,'%Y-%m') as bigTimefrom employee_info eiwhere (((DATE_FORMAT( ei.initiation_time, '%Y-%m' )) BETWEEN  DATE_FORMAT(#{startTime},'%Y-%m') AND DATE_FORMAT(#{endTime},'%Y-%m'))OR (( DATE_FORMAT( ei.leave_time, '%Y-%m' )) BETWEEN  DATE_FORMAT(#{startTime},'%Y-%m') AND DATE_FORMAT(#{endTime},'%Y-%m')))
以上则是分享的DATE_FORMAT函数的简单使用。

相关文章:

【Java】【SQL】DATE_FORMAT函数详解

在实际应用开发中&#xff0c;使用sql语句也属于开发者的一部分&#xff0c;这次来说说DATE_FORMAT函数。 引言&#xff1a;实际上在使用Java开发过程中&#xff0c;有很多业务场景下&#xff0c;都有时间类型的参数参与。前后端进行交互的时候&#xff0c;针对时间类型的格式…...

Pooling方法总结(语音识别)

Pooling layer将变长的frame-level features转换为一个定长的向量。 1. Statistics Pooling 链接&#xff1a;http://danielpovey.com/files/2017_interspeech_embeddings.pdf The default pooling method for x-vector is statistics pooling. The statistics pooling laye…...

Java可变参数(学习推荐版,通俗易懂)

定义 可变参数本质还是一个数组 示例代码 注意事项 1.形参列表中&#xff0c;可变参数只能有一个 2.可变参数必须放在形参列表的最后面 注意是最后面。 name也可以为int类型...

异步编程Promise

文章目录 前言一、关于 Promise 的理解与使用1.相关知识补充区别实例对象和函数对象同步回调异步回调Js中的错误&#xff08;error&#xff09;和错误处理 2.promise是什么 二、Promise 原理三、Promise 封装 Ajax四、async 与 await总结 前言 在项目中&#xff0c;promise的使…...

Centos上的默认文本编辑器vi的操作方法积累

打开一个文本后&#xff0c;常见的操作方法积累如下&#xff1a; 001-进入或退出插入模式的方法 按下 i 进入插入模式。 按下 Esc 退出插入模式。 002-进入命令模式的方法&#xff1a; 按下 Esc 退出插入模式&#xff0c;然后输入冒号:进入命令模式。 003-退出vi编辑器的方…...

海康rtsp拉流,rtmp推流,nginx部署转flv集成

海康rtsp拉流&#xff0c;rtmp推流&#xff0c;nginx部署转flv集成 项目实际使用并测试经正式使用无问题&#xff0c;有问题欢迎评论留言 核心后台java代码&#xff1a; try {// FFmpeg命令String command "ffmpeg -re -i my_video.mp4 -c copy -f flv rtmp://localho…...

【Python百宝箱】时序之美:Python 时间序列探秘与创新

时光漫游&#xff1a;Python 时间序列分析全指南 前言 在数字化时代&#xff0c;时间序列数据扮演着关键的角色&#xff0c;从金融到气象再到生产制造。本文将引导你穿越Python丰富的时间序列分析工具&#xff0c;探索从基础统计到机器学习和深度学习的各个层面。无论你是初学…...

flutter开发实战-第一帧布局完成回调实现

flutter开发实战-第一帧布局完成回调实现 在开发中&#xff0c;我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。 Flutter中有多种不同的Binding&#xff0c;每种Binding都负责不同的功能。下面是Flutter中常见的Binding&#xff1a; 这里简单…...

Windows11编译VTM源码生成Visual Studio 工程

VTM介绍 VTM作为H266/VVC标准的官方参考软件&#xff0c;一直用作H266/VVC标准的研究和迭代。关于H2666/VVC标准的介绍、代码、提案、文档等&#xff0c;可以参考H266/VVC编码标准介绍。 官方代码地址&#xff1a; https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM&…...

[数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现

文章目录 1、二叉搜索树1.1 二叉搜索数的概念1.2 二叉搜索树的操作1.2.1 二叉搜索树的查找1.2.2 二叉搜索树的插入1.2.3 二叉搜索树的删除 2、二叉搜索树的应用2.1 K模型2.2 KV模型 3、二叉搜索树的性能分析4、K模型与KV模型完整代码4.1 二叉搜索树的模拟实现&#xff08;K模型…...

PostGIS学习教程十四:更多的空间连接

PostGIS学习教程十四&#xff1a;更多的空间连接 在上一节中&#xff0c;我们看到了ST_Centroid(geometry)和ST_Union([geometry])函数&#xff0c;以及一些简单的示例。在本节中&#xff0c;我们将用它们做一些更详细的事情。 提示&#xff1a;写完文章后&#xff0c;目录可以…...

【爬虫软件】孔夫子二手书采集

项目演示 孔网爬取图书信息 目录结构 [ |-- api-ms-win-core-synch-l1-2-0.dll, |-- api-ms-win-core-sysinfo-l1-1-0.dll, |-- api-ms-win-core-timezone-l1-1-0.dll, |-- api-ms-win-core-util-l1-1-0.dll, |-- api-ms-win-crt-conio-l1-1-0.dll, |-- api…...

P8736 [蓝桥杯 2020 国 B] 游园安排

题目描述 L \mathrm{L} L 星球游乐园非常有趣&#xff0c;吸引着各个星球的游客前来游玩。小蓝是 L \mathrm{L} L 星球 游乐园的管理员。 为了更好的管理游乐园&#xff0c;游乐园要求所有的游客提前预约&#xff0c;小蓝能看到系统上所有预约游客的名字。每个游客的名字由一…...

初识Docker-什么是docker

Docker是一个快速交付应用、运行应用的技术 目录 一、Docker 二、运用场景 一、什么是Docker&#xff1f;它的作用是什么&#xff1f; Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包&…...

maven的pom.xml设置本地仓库

配置 在Maven项目中&#xff0c;您可以在pom.xml文件中配置本地仓库的路径。在pom.xml文件中&#xff0c;您可以添加以下配置来指定本地仓库的路径&#xff1a; <project>...<repositories><repository><id>local-repo</id><url>file://…...

Qt获取屏幕DPI缩放比

获取屏幕缩放比 网上很多代码是用 logicalDotsPerInch 除以 96 来获取屏幕缩放比&#xff1a; // Windows 除以 96&#xff0c;macOS 除以 72 qreal factor window->screen()->logicalDotsPerInch() / 96.0; 当使能了缩放适配后&#xff0c;logicalDotsPerInch 值就不…...

Spring MVC控制层框架

三、Spring MVC控制层框架 目录 一、SpringMVC简介和体验 1. 介绍2. 主要作用3. 核心组件和调用流程理解4. 快速体验 二、SpringMVC接收数据 1. 访问路径设置2. 接收参数&#xff08;重点&#xff09; 2.1 param 和 json参数比较2.2 param参数接收2.3 路径 参数接收2.4 json参…...

vmware安装银河麒麟V10高级服务器操作系统

vmware安装银河麒麟V10高级服务器操作系统 1、下载银河麒麟V10镜像2、VMware安装银河麒麟V10高级服务器操作系统2.1、新建虚拟机2.2、安装虚拟机 3、配置银河麒麟V10高级服务器操作系统3.1、安装vmware tools3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看系统版本 1、…...

掌握Jenknis基础概念

目录 任务&#xff08;Jobs&#xff09; 构建&#xff08;Builds&#xff09; 触发器&#xff08;Triggers&#xff09; 构建环境&#xff08;Build Environment&#xff09;&#xff1a; 插件&#xff08;Plugins&#xff09;&#xff1a; 参数化构建&#xff08;Paramet…...

AWS 知识二:AWS同一个VPC下的ubuntu实例通过ldapsearch命令查询目录用户信息

前言&#xff1a; 前提&#xff1a;需要完成我的AWS 知识一创建一个成功运行的目录。 主要两个重要&#xff1a;1.本地windows如何通过SSH的方式连接到Ubuntu实例 2.ldapsearch命令的构成 一 &#xff0c;启动一个新的Ubuntu实例 1.创建一个ubuntu实例 具体创建实例步骤我就不…...

Ubuntu 常用命令之 fdisk 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 fdisk 是一个用于处理磁盘分区的命令行工具&#xff0c;它在 Linux 系统中广泛使用。fdisk 命令可以创建、删除、更改、复制和显示硬盘分区&#xff0c;以及更改硬盘的分区 ID。 fdisk 命令的常用参数如下 -l&#xff1a;列出所…...

论文中公式怎么降重 papergpt

大家好&#xff0c;今天来聊聊论文中公式怎么降重&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 论文中公式怎么降重 一、引言 在论文撰写过程中&#xff0c;公式是表达学…...

27. 过滤器

Filter(过滤器)简介 Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截&#xff0c;从而在 Servlet 进行响应处理的前后实现一些特殊的功能。在 Servlet API 中定义了三个接口类来开供开发人员编写 Filter 程序&#xff1a;Filter, FilterChain, FilterConfigFi…...

做一个wiki页面是体验HTML语义的好方法

HTML语义&#xff1a;如何运用语义类标签来呈现Wiki网页 在上一篇文章中&#xff0c;我花了大量的篇幅和你解释了正确使用语义类标签的好处和一些场景。那么&#xff0c;哪些场景适合用到语义类标签呢&#xff0c;又如何运用语义类标签呢&#xff1f; 不知道你还记不记得在大…...

金融CRM有用吗?金融行业CRM有哪些功能

市场形式波诡云谲&#xff0c;金融行业也面临着资源体系分散、竞争力后继不足、未知风险无法规避等问题。金融企业该如何解决这些问题&#xff0c;或许可以了解一下CRM管理系统&#xff0c;和其提供的金融行业CRM解决方案。 金融行业是银行业、保险业、信托业、证券业和租赁业…...

@XmlAccessorType+@XmlElement完美解决Java类到XML映射问题

前言&#xff1a; 最近项目在做静态代码扫描的时候&#xff0c;出现Java类中成员变量命名的问题&#xff0c;开头字母必须小写&#xff0c;但是这个类成员是对接其他公司的字段&#xff0c;对方提供的请求格式是XML&#xff0c;必须将Java类转化为XML的格式&#xff0c;而且这…...

软件渗透测试有哪些测试流程?权威安全测试报告的重要性

软件渗透测试也是安全测试的一种&#xff0c;是通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。作为网络安全防范的一种新技术&#xff0c;对于网络安全组织具有实际应用价值。 一、软件渗透测试的过程   软件渗透测试的过程通常包括四个主…...

安防视频融合云平台/智慧监控平台EasyCVR如何添加验证码调用接口?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

浏览器输入一个url,它的解析过程

URL解析&#xff1a; 浏览器首先解析URL&#xff0c;提取其中的协议&#xff08;例如&#xff0c;HTTP、HTTPS&#xff09;、域名和路径等信息。这个过程被称为URL解析。 DNS解析&#xff1a; 浏览器会检查域名的IP地址是否已经缓存。如果没有缓存或者缓存已经过期&#xff0c;…...

第29节: Vue3 列表渲染

在UniApp中使用Vue3框架时&#xff0c;你可以使用列表渲染语法来动态地渲染一个列表。下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用列表渲染&#xff1a; <template> <view> <button click"addItem">Add Item</button&g…...

qq自动发货平台网站怎么做/谷歌商店app下载

计算机在翻译中作用探析计算机在翻译中作用探析   摘 要&#xff1a;计算机翻译是涉及语言学、数学、计算机科学和人工智能等多种学科和技术的综合性课题&#xff0c;被列为21世纪世界十大科技难题。从上世纪80年代中期开始&#xff0c;基于语料和多引擎机译方法的广泛运用&a…...

蚌埠做网站/农产品品牌推广方案

控制台程序。 定义监听器类有许多方式。下面把监听器类定义为单独的类MouseHandler: 1 // Mouse event handler for a selection button2 import java.awt.Cursor;3 import java.awt.event.*;4 5 public class MouseHandler extends MouseAdapter {6 Cursor handCursor new …...

自做装逼头像网站/关键词推广优化app

TCP主动关闭连接 appl: close(), --> FIN FIN_WAIT_1 //主动关闭socket方&#xff0c;调用close关闭socket,发FIN <-- ACK FIN_WAIT_2 //对方操作系统的TCP层&#xff0c;给ACK响应。然后给FIN <-- FIN …...

如何做正版小说网站/武汉seo推广优化

0 引言 《信息安全技术 信息系统安全等级保护基本要求》&#xff08;GB/T 22239-2008&#xff09;在我国推行信息安全等级保护制度的过程中起到了非常重要的作用, 被广泛用于各行业或领域, 指导用户开展信息系统安全等级保护的建设整改、等级测评等工作[1]。随着信息技术的发展…...

网站多条件筛选 html/营销型企业网站建设的内容

增加或减少数据节点的数量和NoOfReplicas&#xff08;即副本数&#xff0c;通过管理节点的config.ini配置文件来设置&#xff09;有关&#xff0c;一般来说NoOfReplicas是2&#xff0c;那么增加或减少的数量也应该是成对的&#xff0c;否则要设置另外的NoOfReplicas。首先必须确…...

制作网站需要的服务器/长春seo排名优化

以前在学校学习C语言的时候一直搞不懂那个共用体union有什么用的。工作之后才发现它的一些妙用&#xff0c;现举例如下&#xff1a;1. 为了方便看懂代码。比如说想写一个3 * 3的矩阵&#xff0c;可以这样写&#xff1a;[ 注&#xff1a;下面用红色部分标记的地方是后来添加上去…...