本文摘自PHP中文网,作者青灯夜游,侵删。
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.常用时间语句
1 2 3 4 5 6 7 8 | 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 //获取时间的秒数
|
1 2 3 4 5 6 | 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视频教程
以上就是mysql可以做日期处理吗的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
mysql 慢查询日志深入理解
mysql大数据表水平分区优化的详细步骤
如何停止mysql服务器
mysql 查询树结构方式
mysql 日期加减函数汇总
关于mysql超长自动截断实例详解
介绍高级进阶的mysql数据库sql语句
mysql如何开启远程连接
关于mysql中日志以及备份还原的图文代码详解
mysql图形化管理工具哪个好?mysql图形化管理工具排行
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql可以做日期处理吗