MySQL datetime类型与时间、日期格式字符串大小比较的方法

目录
  • 一、前提
    • 1、MySQL版本信息:
    • 2、表字段:
  • 二、使用>、<比较
    • 1.  日期格式比较:
    • 2. 时间格式
  • 三、between and
    • 1. 日期格式
  • 四、总结

一、前提

1、MySQL版本信息:

MySQL版本:8.0.27

注意:其他版本(主要5.x版本未验证)

2、表字段:

定义列

CREATE TABLE
IF NOT EXISTS `user` (
   id INT NOT NULL PRIMARY KEY auto_increment COMMENT 'id',
   user_name VARCHAR (16) NULL COMMENT '用户名',
   real_name VARCHAR (10) NULL COMMENT '真实姓名',
   age INT UNSIGNED NULL COMMENT '年龄',
   create_time datetime NULL COMMENT '创建时间',
   create_by VARCHAR (16) NULL COMMENT '创建人',
   modify_time datetime NULL COMMENT '修改时间',
   modify_by VARCHAR (16) NULL COMMENT '修改人',
   deleted CHAR (1) DEFAULT 'F' NOT NULL COMMENT '删除标识:F-未删除,T-已删除'
)

表中数据:

二、使用>、<比较

1.  日期格式比较:

  •  大于>
select * from USER t where t.create_time > '2022-04-04';

结果集:

重点注意:id为2的记录,创建时间为'2022-04-04 00:00:00',该记录没有查询到,

说明 create_time > '2022-04-04',实际上是取创建时间在'2022-04-04 00:00:00‘之后的数据。

  • 小于<
select * from USER t where t.create_time < '2022-04-04';

结果集:

结果集只有3号创建的数据,说明create_time < '2022-04-04',实际是取创建时间在'2022-04-04 00:00:00'之前的数据。

总结:datetime类型数据,使用使用日期格式数据时,系统会默认将日期补全成 ‘00:00:00’的时间进行计算。

2. 时间格式

大于>

select * from USER t where t.create_time > '2022-04-04 00:00:01';

  • 小于<
select * from USER t where t.create_time < '2022-04-04 00:00:01';

三、between and

1. 日期格式

select * from USER t where t.create_time BETWEEN '2022-04-04' and '2022-04-04'

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04'
AND '2022-04-05'

2. 时间格式

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04 00:00:00'
AND '2022-04-04 00:00:00'

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04 00:00:00'
AND '2022-04-05 00:00:00'

四、总结

对于datetime类型数据而言,系统默认将日期当做'00:00:00'的时间来处理,>、<不取边界值,而between and附带边界值。即:between and 等价于 >= ... <=...

到此这篇关于MySQL datetime类型与时间、日期格式字符串大小比较的文章就介绍到这了,更多相关mysql日期格式字符串大小比较内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL时间字段究竟使用INT还是DateTime的说明

    今天解析DEDECMS时发现deder的MYSQL时间字段,都是用 `senddata` int(10) unsigned NOT NULL DEFAULT '0'; 随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高. 归根结底:用int来代替data类型,更高效. 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步.创建一个表date_test(非

  • MySql用DATE_FORMAT截取DateTime字段的日期值

    用 DATE_FORMAT 来格式化日期字段 SELECT DATE_FORMAT(crt_time,'%Y-%m-%d') FROM ad_n_advertise_t

  • MySQL中datetime时间字段的四舍五入操作

    目录 前言 1.背景 2.模拟测试 3.结论 总结 前言 如果不是踩到坑,我估计到现在还不知道时间字段会四舍五入. 1.背景 通过 Java 代码获取当日最大时间,然后存入数据库,数据库表字段格式 datetime 保留 0 位. now.with(LocalTime.MAX) 小小的一行代码,获取今天的最大日期. 到数据库一看,好家伙,竟然存了第二天的时间. 看着样子是四舍五入了! 2.模拟测试 执行之后,看一下日志: 使用的是 2021-09-28T23:59:59.999999999,但是

  • 浅谈Mysql时间的存储 datetime还是时间戳timestamp

    目录 简单对比 占用空间 优缺对比 如何存储毫秒或者更高级别的小数? 时间戳详解 一个方便的用法 显示格式(非存储格式) java可能遇到的坑 简单对比 占用空间 MySQL 常用的日期时间类型常用的是datetime.timestamp.除此之外 还有用的不多的YEAR DATE TIME注意5.6.4的版本 从上表可以看到,DATETIME默认占用5个字节,而TIMESTAMP默认占用4个字节,如果需要更高精度的存储(秒后的小数点个数,比如毫秒)那么需要额外的存储空间. 优缺对比 DATET

  • Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高

    目录 # 后数据准备 # sql查询速率测试 # sql分组速率测试 # sql排序速率测试 # 小结 数据库中可以用datetime.bigint.timestamp来表示时间,那么选择什么类型来存储时间比较合适呢? # 后数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date` datetime NOT NULL, `time_timestamp` ti

  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是,java.sql.Date.java.sql.Timestamp.java.util.Date这些类都不好用,很多方法都过时了. Java8里面新出来了一些API,LocalDate.LocalTime.LocalDateTime 非常好用 如果想要在JDBC中,使用Ja

  • MySQL datetime类型与时间、日期格式字符串大小比较的方法

    目录 一.前提 1.MySQL版本信息: 2.表字段: 二.使用>.<比较 1.  日期格式比较: 2. 时间格式 三.between and 1. 日期格式 四.总结 一.前提 1.MySQL版本信息: MySQL版本:8.0.27 注意:其他版本(主要5.x版本未验证) 2.表字段: 定义列 CREATE TABLE IF NOT EXISTS `user` ( id INT NOT NULL PRIMARY KEY auto_increment COMMENT 'id', user_na

  • js和C# 时间日期格式转换的简单实例

    下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串. 整数1335258540000实际上是一个1970 年 1 月 1 日 00:00:00至这个DateTime中间间隔的毫秒数.通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下 用var date = eval('new ' + eval('/Date(

  • .Net与JS时间日期格式的转换问题对比分析

    本文实例分析了.Net与JS时间日期格式的转换问题.分享给大家供大家参考,具体如下: Js中的1415349957524整数 ,其实代表的是1970.1.1 00:00:00至现今某个时间点的时间间隔毫秒数.而在.Net中,我们可以用Ticks属性得到0001.1.1 00:00:00至现今某个时间点的时间间隔毫秒数. 具体代码实现如下所示: JS: //获取1970.1.1 00:00:00至现在的毫秒数 var milDate = +(new Date); .Net: //获取1970.1.

  • C#日期格式字符串的相互转换操作实例分析

    本文实例讲述了C#日期格式字符串的相互转换操作.分享给大家供大家参考,具体如下: 方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方法二:Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo(); dtForm

  • python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str = '2006-01-03' date_ = datetime.datetime.strptime(date_str,'%Y-&m-%d') 这是单个字符串的转化,其中"%Y-%m-%d"表示日期字符串的格式,若date_str='2006/1/3',则可写为"%Y/%

  • 浅析GridView中显示时间日期格式的问题

    以下都是GridView基本常用的日期,时间格式 形式 语法 结果 注释 数字 {0:N2} 12.36   数字 {0:N0} 13   货币 {0:c2} $12.36   货币 {0:c4} $12.3656   货币 "¥{0:N2}" ¥12.36   科学计数法 {0:E3} 1.23E+001   百分数 {0:P} 12.25% P and p present the same. 日期 {0:D} 2006年11月25日   日期 {0:d} 2006-11-25  

  • vue filter 完美时间日期格式的代码

    vue filter时间日期格式的实例代码如下所示: <template> <div>{{msg | compFilter('yyyy-MM-dd hh:mm') }}</div> </template> <script> export default { data() { return { msg: new Date() // msg: 10, } }, filters: { compFilter: function(value, format

  • idea注解参数换行时间日期格式设置方法

    idea注解参数换行时间日期格式设置 /** * @param financeMainParse * @param request * @param response * @param model * @return * @Description * @author Liruilong * @date 2020年04月08日 14:04:50 **/ @PostMapping("/mainProjectAddUpdate") @ResponseBody public int mainP

  • Java实现时间日期格式转换示例

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateForma

  • 解决json日期格式问题的3种方法

    开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后将得到一个很长的数字表示日期数据,如下所示: 复制代码 代码如下: //设置服务器响应的结果为纯文本格式            context.Response.ContentType = "text/plain";           //学生对象集合            List<Student> students = new List<St

随机推荐