资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

mysql能对日期进行处理吗

MySQL能对日期进行处理吗?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

成都创新互联公司是一家以成都网站建设、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为PVC花箱等众行业中小客户提供优质的互联网建站和软件开发服务。

mysql可以做日期处理;它可以利用CURDATE()、NOW()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()等内置函数来做日期处理,例“SELECT  CURDATE()”获取当前日期。

最近一个项目,需要写很多的sql语句。涉及到很多与时间相关的处理,现在做一下简单的总结。

1.时间格式:在这个项目中,或许是由不同的人建立的数据库表结构吧,对时间的格式步统一,有的表中存储的long类型的时间戳,有的表中是存储的日期,有的表中存储的是时间,同时格式有20171225,2017-12-25等,一点都不统一。这样做,会对项目增加一些额外的工作量,同时会衍生出一些问题出来。比如,在写后台代码时,需要对时间做出处理,以适应数据库的时间格式;在进行夺标联合查询时,时间格式不统一,又会对sql语句进行时间格式转换,造成sql语句臃肿的情况。所以,在同一个项目中,时间格式应该保持统一。个人觉得long 类型的时间戳,以及String类型的yyyy-MM-dd HH:mm:ss 这两种方式时比较不错的。

long类型的时间戳,是因为后台java代码将date类型的时间转化为时间戳很容易。

String类型时因为,我们假如经常使用时间这个字段,在应用时不需要额外将Date类型转化为String类型,使用起来比较直观,方便。

2.常用时间语句

SELECT  CURDATE():2020-10-7  //此时日期
SELECT  NOW() : 2020-10-7 22:20:21  //此刻时间
SELECT  YEAR('2020-10-7 22:27:45'): 2020 //获取时间的年份
SELECT  MONTH('2020-10-7 22:27:45'): 10 //获取时间的月份
SELECT  DAY('2020-10-7 22:27:45'):25  //获取时间的天数
SELECT  HOUR('2020-10-7 22:27:45'):22  //获取时间的小时
SELECT  MINUTE('2020-10-7 22:27:45'):27  //获取时间的分钟
SELECT  SECOND('2020-10-7 22:27:45'):45  //获取时间的秒数
SELECT  DATE_SUB(NOW(),INTERVAL   1   YEAR)  //在目前的时间减去一年,该语句可以进行多种操作,指定时间下减去x年:DATE_SUB("2017-12-25",INTERVAL x YEAR),同时可以减去 x month/day/hour/minute/second等
SELECT  DATE_ADD(NOW(),INTERVAL 1 YEAR)  //同上,在目前的时间上加上一年
SELECT  CONCAT('2017','-12-12'):2017-12-12  //组装字符串,可以组装成任何时间格式,也可以使用如上语句,例如:SELECT CONCAT(YEAR(NOW()),'-12-12') :2017-12-12 ;
SELECT UNIX_TIMESTAMP('2017-12-25'):1514131200  //字符串转换成时间戳
SELECT FROM_UNIXTIME(1514131200) :2017-12-25 00:00:00  //时间戳转化为时间
SELECT DATE_FORMAT('2017-12-25 22:23:01', '%Y-%m-%d %H:%i:%s');   //字符串转化为时间格式(date),也可以时间格式转化为字符串格式

感谢各位的阅读!看完上述内容,你们对mysql能对日期进行处理吗大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道。


当前题目:mysql能对日期进行处理吗
文章路径:http://cdkjz.cn/article/iiphoh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220