date_format,数据库时间字段的格式转换函数使用

初次接触date_format是将数据库的时间字段返回,显示成自己想要的样子。例如20190908显示成2019-09-08或者其他类型的也可。格式:date_format(date,’%Y-%m-%d’)。
接下来总结一下我在工作中遇到的坑,不是特别多。

date_format(date,’%Y年%m月%d日’)

作用:放在sql语句中,可以直接将数据库中的**日期字段,转换成想要的格式,**就不需要用java代码进行转换了。本次使用的是varchar类型。

格式:DATE_FORMAT(A.FSRQ ,’%Y年%m月%d日’) as FSRQ

1.错误:字符串是时间的情况下,但是yy-mm-dd hh:mm:ss的形式,如果直接用>= <=来比较的话,会导致少一天!!!! 需要用它来转,将后面的分秒省略掉。

发现:可以用于字符串。不过应该有限制,比如,只能是八位的字符串。或者有-隔开。目前发现这两种可用,七位的是没法用的。2019901

2.错误:如果时间类型有时候为了方便用字符串来表示,那么在比大小的时候,比如20190925>2019-09-26,我们能够理解后者大于前者,但是数据查询的时候,前者是大于后者的,默认0>-,如果将后面的-去掉,同理会出现其他问题(前面是数据库字段,后面是查询条件),所以使用date_format将数据库中的时间字段统一格式,如果没有-,它会填上,如果已经有了,它就不会再添加了。date_format(sj,’%Y-%m-%d’)>2019-09-26,(和查询条件的格式一样即可)。(ps:此种方式只使用于某些特定的格式,比如y-m-d,y/m/d,ymd不适用于中文格式y年m月d日(而且无法用来时间的比较)。)

发现:统一一种格式比较就行了。比如数据库中有2019-09-09,也有2019-08-08.那我们只需要根据查询条件的时间比如2019-09-08的格式或者其他,将数据库里面的字段转换成跟他一样即可。

你可能感兴趣的:(萌新,新手总结,基础,sql,数据库,date_format,时间格式转换)