eg : house_date字段的值为2013.03.02,提取 2013.03
方法一 DATE_FORMAT() 函数
SELECT DATE_FORMAT(house_date,'%Y.%m') as month ,house_date from record limit 10
运行发现,有些日期格式本身就是年月,这样的数据会出现问题
方法二
-
left(str, length)函数 【从左开始截取,right()从右开始截取】
-
substring(str, pos,[length]) 函数 【str:被截取字符串 pos:从第几位开始截取 length:截取长度(如未设置,则为从截取位到末尾)】
-
substring_index(str, delim, count)【被截取字符串,关键字,关键字出现的次数】
SELECT left(house_date,7) as month ,house_date from record limit 10
SELECT substring(house_date,1,7) as month ,house_date from record limit 10
SELECT substring_index(house_date,'.',2) as month ,house_date from record limit 10
- 截取第二个“.”之前的所有字符 substring_index(house_date,’.’,2)
- 截取第二个“.”之后的所有字符 substring_index(house_date,’.’,-2)
- 如 2014.03 格式数据没有第二个“.”,则返回整个字符串 2014.03
附: