MySQL中字符串比较大小(日期字符串比较问题)

数据库中在对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较,若字符是非数字那么会转换为ascii码进行比较,若在某位置上已经有大小之分,那么就不会再进行比较。

如上所述,当字符串用于比较时间格式数据进行时间维度的比较时会出现问题。如以下sql进行查询时

 select *  FROM  work_day_content as wdc WHERE wdc.work_day >= '2019-09-30 00:00:00' AND   wdc.work_day<= '2019-10-06 00:00:00'

图1-1

如图1-1所示,没有查询出任何条件

当使用日期函数把字符串转化为日期时

select *  FROM work_day_content as wdc  where date(wdc.work_day) >= date('2019-09-30 00:00:00'  )   AND date(wdc.work_day)<= date('2019-09-30 00:00:00'  )

图1-2

如图1-2所示,查出了符合条件的数据

分析为何第一个sql语句没有查询出内容。由于该字段使用的是字符串形式存储,因此此时比较大小采用的是字符串方式比较大小。

字符串方式比较大小是从左往右进行匹配。对于长度不同的字符串进行匹配时。较短字符串比较完后还没有大小之分。则较长的字符串较大。如下面sql所示

select '2019-09-30  ' < '2019-09-30 00:00:00'

发现此时**字符串’2019-09-30 00:00:00’**较大。因此之前的sql没有查出日期为2019-09-30的数据

因此。在使用字符串表示时间时,需要使用时间函数进行比较。

sql提供的时间函数有:date(), str_to_date()

另外,在mysql当中,字符串类型间进行加减乘除运算的时候,会截取字符串以数字开头的那一部分数字进行运算,如果字符串前面没有数字,那么就只能截取的数值为0,那么进行加减的时候结果都是0,进行乘除的时候结果都是NULL。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

MySQL中字符串比较大小(日期字符串比较问题)相关推荐

  1. MySQL中concat函数(连接字符串)

    MySQL中concat函数(连接字符串) MySQL中concat函数 使用方法: concat(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 ...

  2. MySQL中的列类型之字符串类型总结

    关联博文: MySQL中数值类型(列类型)与显示宽度 MySQL中的列类型之字符串类型总结 在SQL中,将字符串类型分为了六类:char,varchar,text,blob,enum和set. 类型 ...

  3. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法:  语法:  TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)  说明:  ...

  4. mysql中,输入一个日期,动态的获取每周和每月的实时最后一天

    mysql中,输入一个日期,动态的获取每周和每月的实时最后一天 SELECTv.dayStr AS '选定的日期',-- 系统当前日期(SELECTDATE_FORMAT(NOW(), '%Y-%m- ...

  5. java字符串比大小_Java字符串比较(3种方法)

    字符串比较是常见的操作,包括比较相等.比较大小.比较前缀和后缀串等.在 Java 中,比较字符串的常用方法有 3 个:equals() 方法.equalsIgnoreCase() 方法. compar ...

  6. linux mysql date 格式_关于MySQL中的三种日期类型

    最近遇到两次插入日期类型后,数值为 0000-00-00 00:00:00 的情况,于是查了一下官方文档,找到了原因. MySQL中我们经常用来存储日期的数据类型有三种:Date.Datetime.T ...

  7. MySQL中常用函数之日期函数使用详解

    关联博文: MySQL中日期时间类型与格式化 该篇总结MySQL 中常用的日期时间函数. [1]DATE_FORMAT (datetime ,FormatCodes ) 将日期转换成字符,示例如下: ...

  8. matlab 字符串转时间格式,如何在datetime matlab中使用毫秒转换日期字符串

    datetime的部分格式不正确 . 略微调整: DateStrings='2014-06-23T17:06:41.584+0200'; t = datetime(DateStrings,'Input ...

  9. mysql 中文字符查询不出数据_jsp页面显示不出mysql中查询出的中文字符串,插入中文也不好使...

    用Eclipse编写的jsp页面,连接的是mysql数据库.英文和数字都能正常显示,中文就显示不了. 用户注册... 用Eclipse编写的jsp页面,连接的是mysql数据库.英文和数字都能正常显示 ...

  10. MySQL中的+作用,进行字符串的拼接用concat

    +的作用 进行字符串的拼接

最新文章

  1. jasonrpcbridge
  2. 5个php实例,细致说明传值与传引用的区别
  3. 腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全
  4. 一起学React--组件定义和组件通讯
  5. UVA10972 - RevolC FaeLoN(双连通分量)
  6. 计算机动画分为关键帧动画和,一个最简单的动画最少有几个关键帧
  7. Topological Sorting(拓扑排序)
  8. flash 绘图API:绘制秀曲线图形
  9. 企业微信hook,企业微信软件
  10. html学校代码怎么弄,学校代码查询网2020怎么查学校代码?查学校代码的方法
  11. 怎么用计算机计算t分布的概率,MATLAB如何使用tpdf函数计算T分布的概率密度
  12. ffmpeg 音频转amr
  13. O2O电子商务 营销模式
  14. HDU2122 Ice_cream’s world III 【最小生成树】
  15. Qt对象间的父子关系
  16. 2017_Generating high-quality crowd density maps using contextual pyramid cnns
  17. Metaverse 元宇宙入门-06-Interchange Tools + Standards and the Metaverse 交换工具+标准和元界
  18. 201771010112罗松《面向对象程序设计(java)》第十三周学习总结
  19. 原生JS实现弹幕效果
  20. iOS音视频开发七:视频采集

热门文章

  1. Vue项目中引入天地图
  2. 获取Class类对象的几种方式
  3. NUXT 运行generate报错 is not in cwd
  4. 计算机操作实际操作课程,(计算机操作课程.doc
  5. 关于Java+Vue3快速开发框架esdk-nzb-cas的介绍
  6. 抽点时间读经典AI论文之Learning representations by back-propagating errors
  7. UE5工程Modules are missing. Could not be compiled.Try rebuilding from source manually
  8. 历年高考专业录取分数线 API 接口
  9. Python最简单的sklearn库安装教程
  10. 5G 核心网用户面功能(一)UE IP地址分配和管理