1)Java中使用 SimpleDateFormate 格式化出错误的时间
在使用SimpleDateFormate类格式化时间粗心的程序员(我)有时候会写错Pattern,比如写成("YYYY-MM-dd HH:MM:ss"),这样写就会有问题,会使得你传入的时间在它格式化的时候混淆月份和小时的概念,它在翻译的时候就不知道需要翻译成月还是时了,所以正确的写法应该是在年月日时分秒中保证不出现大小写相同的字母,比如上面这个正确写法应是("YYYY-MM-dd HH:mm:ss")
2)在使用easyexcel时,使用@DateFormate无法格式化时间
该注解无法格式化原本就是Date类型的数据,只能格式化String类型的数据,底层应该是由字符串解析计算得出结果。
3)Mysql中IFNULL函数失效
情况是当你期望你的返回值类型是int的时候,这时候如果没有查询到结果就返回0,但当你的记录是空的时候就会返回null,而不会返回0,仿佛IFNULL函数失效了,该函数只是在你查询结果中的字段有空的时候才会生效,如果说你查询结果就为空的话,则这个函数就失效,这种情况应该这样写:
SELECT
CASE
WHEN (SELECT name from menu where code = #{code}) = null
THEN 0
ELSE
(SELECT name from menu where code = #{code})
END
参考地址:关于MySql中使用IFNULL()函数失效的问题。 - jy的blog - 博客园 (cnblogs.com)
4)order by field()MySQL自定义排序
有时候我们会有一种需求就是按查询结果中的某一字段排序,这一字段有时候可能是汉字或者有时候你想自定义排序规则,可使用如下方法:
ORDER BY FIELD(field,str1,str2,str3,str4……) DESC
5)使用INSERT ...SELECT....FROM有时候会缺少数据
有时候会有两张表,想把一个表的数据备份到另一个表中,使用INSERT ...SELECT....FROM语句有时候会缺少数据,目前查询可能和表锁有关,一个解决办法是使用truncate先清空表再插入数据,这样就不会缺少数据。但这种方法适用于数据量不大的情况。