工作小日志:(1)SimpleDateFormate 格式化出错误的时间 (2)@DateFormate无法格式化时间(3)IFNULL函数失效(4)MySQL自定义排序(5)INSERTSELECT

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先清空表再插入数据,这样就不会缺少数据。但这种方法适用于数据量不大的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值