mysql字符串类型时间比较大小

日常随笔:
       这里记录一个最近遇到的mysql字符串类型时间的问题

数据结构:
|year(int)| month(int)|
|2016 | 7 |
|2016 |10|
使用CONCAT_WS拼接时间为yyyy-m格式,返回的是字符串类型

注:经测试字符串时间yyyy-m与yyyy-m单独比较,可以得到正确结果,但是yyyy-m与yyyy-mm比较得不出正确结果。
因为字符串比较首先会比较字符长度。 因而直接回返回false
例:
– 字符串时间yyyy-mm,yyyy-m时间格式,既转不了时间格式,也转不了时间戳,亦不能比较大小
– 以下是sql
SELECT DATE_FORMAT(“2019-7”,’%Y-%m’),UNIX_TIMESTAMP(DATE_FORMAT(“2019-7”,’%Y-%m’)),“2019-7”<“2019-10”;

那么像以上数据结构以及数据组合的情况怎么比较。
这里可以用到LPAD填充函数
例:
– 使用LPAD填充函数,不足位数补0
SELECT CONCAT_WS("-",2019,LPAD(6,2,0)),CONCAT_WS("-",2019,LPAD(10,2,0)),CONCAT_WS("-",2019,LPAD(6,2,0)) 这样操作既可得到比较后的正确结果。

你可能感兴趣的:(Mysql日常记录)