mysql中varchar类型的日期进行比较、排序等操作的实现

在mysql使用过程中,日期一般都是以datetime、timestamp等格式进行存储的,但有时会因为特殊的需求或历史原因,日期的存储格式是varchar,那么我们该如何处理这个varchar格式的日期数据呢?

使用函数:STR_TO_DATE(str, format)

STR_TO_DATE(str, format)函数是DATE_FORMAT()函数的反函数。它需要一个字符串str和一个格式字符串格式。STR_TO_DATE()返回一个DATETIME值,如果格式字符串包含日期和时间部分,或如果字符串只包含日期或时间的部分返回日期或时间值。

下面举个案例进行说明。

比如我现在有一张会员表,表的结构如下所示:

我在表中造了如下几条数据:

现在,如果我需要从中挑选出2018年8月份注册的所有会员,并按注册时间进行排序,那么要怎么做呢?这里给出一个参考:

SELECT id,nickname,createtime
FROM member
WHERE str_to_date(createtime, '%Y-%m-%d') BETWEEN str_to_date('2018-08-01', '%Y-%m-%d') AND str_to_date('2018-08-31', '%Y-%m-%d')
ORDER BY str_to_date(createtime, '%Y-%m-%d')

执行结果如下:

总结:STR_TO_DATE(str, format)函数可以将数据库中varchar类型的日期数据转换成DATETIME类型的日期数据,转换过程注意format参数必须要应对str的格式,之后我们就可以进行比较、排序等操作啦!

到此这篇关于mysql中varchar类型的日期进行比较、排序等操作的实现的文章就介绍到这了,更多相关mysql varchar类型比较排序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql varchar类型求和实例操作

    有的小伙伴在学习数据库的时候,创建表结构的时候不小心把某字段设置成了varchar但是在统计求和的时候就傻眼了,接下来跟着小编学习一下,不用改该列数据类型也能求和的方法吧! 1.打开 数据库连接客户端Navicat Premium ,创建一个新的表结构,这里age这列 故意 设置为 varchar. 2.创建表成功之后,为刚刚的表创建一些测试的数据,这里如下图: 3.在数据量少的时候可以使用sum()函数直接求和,因为MySQL中它可以自动识别是字符串类型还是数字类型. 4.以上适用于整数,或者

  • MySQL数据类型varchar详解

    1.varchar(N)的逻辑意义从MySQL4.1开始,varchar (N)中的N指的是该字段最多能存储多少个字符(characters),不是字节数.不管是一个中英文字符或者数字.或者一个汉字,都当做一个字符.在4.1之前,N表示的是最大存储的字节数(bytes).2.varchar(N)到底能存多长的数据在mysql reference manual上,varchar最多能存储65535个字节的数据.varchar 的最大长度受限于最大行长度(max row size,65535byte

  • MySQL数据库中varchar类型的数字比较大小的方法

    创建测试表 -- ---------------------------- -- Table structure for check_test -- ---------------------------- DROP TABLE IF EXISTS `check_test`; CREATE TABLE `check_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `current_price` varchar(10) NOT NULL, `price`

  • Mysql中varchar类型一些需要注意的地方

    varchar的存储规则 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节). 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节. varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度. 官方是这么说的: Values in VARCHAR columns are variable-length

  • MySQL中字段类型char、varchar和text的区别

    在MySQL中,char.varchar和text类型的字段都可以用来存储字符类型的数据,char.varchar都可以指定最大的字符长度,但text不可以. 它们的存储方式和数据的检索方式也都不一样. 数据的检索效率是:char > varchar > text 具体说明: char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时

  • mysql中varchar类型的日期进行比较、排序等操作的实现

    在mysql使用过程中,日期一般都是以datetime.timestamp等格式进行存储的,但有时会因为特殊的需求或历史原因,日期的存储格式是varchar,那么我们该如何处理这个varchar格式的日期数据呢? 使用函数:STR_TO_DATE(str, format) STR_TO_DATE(str, format)函数是DATE_FORMAT()函数的反函数.它需要一个字符串str和一个格式字符串格式.STR_TO_DATE()返回一个DATETIME值,如果格式字符串包含日期和时间部分,

  • MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

    目录 TIMESTAMP类型返回日期时间数据中带有 T 场景描述 通过注解格式化(方法一) 通过全局配置(方法二) MySQL时间类型timestamp知识点 mysql日期时间类型 Timestamp实例 总结 TIMESTAMP类型返回日期时间数据中带有 T 场景描述 MySQL 中使用 TIMESTAMP 类型 实体类使用 java.util.Date 类型 返回 JSON 数据: 通过注解格式化(方法一) 可以在日期类型属性上,或者 GET 方法加上 Jackson 的 @JsonFor

  • MySQL中varchar和char类型的区别

    目录 前述 VARCHAR类型 VARCHAR适用情况 CHAR类型 测试 VARCHAR(5)与VARCHAR(200)的区别 总结 前述 VARCHAR和CHAR是两种最主要的字符串类型.不幸的是,很难精确地解释这些值是怎么存储在磁盘和内存中的,因为这跟存储引擎的具体实现有关.下面的描述假设使用的存储引擎是InnoDB和/或者MyISAM.如果使用的不是这两种存储引擎,请参考所使用的存储引擎的文档. 先看看VARCHAR和CHAR值通常在磁盘上怎么存储.请注意,存储引擎存储CHAR或者VAR

  • Mysql中varchar长度设置方法

    如果某一项中设置的是varchar(50) 那么对英文当然是50 那么对中文呢 utf-8的中文占3个字节 那么,这个varchar(50)是不是只能存16个汉字了? mysql varchar(50) 不管中文 还是英文 都是存50个的 MySQL5的文档,其中对varchar字段类型这样描述:varchar(m) 变长字符串.M 表示最大列长度.M的范围是0到65,535.(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节). 为何会这般变换?真

  • mysql中datetime类型设置默认值方法

    通过navicat客户端修改datetime默认值时,遇到了问题. 数据库表字段类型datetime,原来默认为NULL,当通过界面将默认值设置为当前时间时,提示"1067-Invalid default value for 'CREATE_TM'",而建表的时候,则不会出现这个问题,比如建表语句: CREATE TABLE `app_info1` ( `id` bigint(21) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `a

  • 解决python写入mysql中datetime类型遇到的问题

    刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值.python程序中有对应的一个datetime变量dt. 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中exTime字段里. 问题,如何写入?调试时,总是无法写入. 运行环境:windows10 python 3.6 mysql5.6.38 运行结果提示: Proce

  • mysql中json类型字段的基本用法实例

    目录 前言 基本环境 JSON类型字段常用操作 插入JSON类型数据 查询JSON类型数据 更新JSON类型数据中的特定字段 匹配JSON类型数据中的特定字段 结语 前言 mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们主要来梳理一下我们在日常工作中使用实践 基本环境 my

  • MySQL中字段类型为longtext的值导出后显示二进制串方式

    目录 MySQL字段类型为longtext的值导出后显示二进制串 使用MySQL的CAST()函数或者CONVERT()函数 MySQL的基本语句及用法 WHERE子句:条件查找 UPDATE子句:数据更新 DELETE子句:删除数据 LINK子句:元字符查找 UNION操作符:联合查询结果 MySQL字段类型为longtext的值导出后显示二进制串 MySQL中字段类型为 longtext 的字段值保存的是Blob (Binary large objects),所以在导出sql或者将sql查询

随机推荐