1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql+中与当前时间比较大小_Mysql中时间加减和比较大小的方法

mysql+中与当前时间比较大小_Mysql中时间加减和比较大小的方法

时间:2023-09-17 02:13:19

相关推荐

mysql+中与当前时间比较大小_Mysql中时间加减和比较大小的方法

在Oracle中使用时间函数to_date习惯了,在Oracle中时间的加减也非常简单,直接加减即可。在Mysql中时间的函数很多,非常自由。

在项目中经常用到的就是时间的加减。

比如60天前,Oracle中直接就是sysdate-60,Mysql中就不行。

对时间加减的函数是

加ADDDATE(),减SUBDATE();

select SUBDATE(now(),interval 60 day); 60天前的时间

select ADDDATE(now(),interval 60 day); 60天后的时间

在Oracle中经常用到trunc(sysdate,'D'),截取到天或者到小时。

在Mysql中可以用date_format()来代替。返回的是时间格式的字符串,也是时间

在Mysql中只要符合时间格式的字符串就可以当做Date类型。

取今天时间到天,

mysql> select DATE_FORMAT(now(),'%Y%m%d');

+-----------------------------+

| DATE_FORMAT(now(),'%Y%m%d') |

+-----------------------------+

| 0611 |

+-----------------------------+

1 row in set (0.00 sec)

取到小时。

mysql> select DATE_FORMAT(now(),'%Y%m%d%H');

+-------------------------------+

| DATE_FORMAT(now(),'%Y%m%d%H') |

+-------------------------------+

| 061121 |

+-------------------------------+

1 row in set (0.00 sec)

Mysql中直接比较时间大小也是不能用>或<

只能转换成数字来比较大小。

如果比较天的大小,1号小于2号。需要转换成到现在为止的天数。用到的是to_days(),

mysql> select to_days('0602');

+---------------------+

| to_days('0602') |

+---------------------+

| 734290 |

+---------------------+

1 row in set (0.00 sec)

mysql> select to_days('0603');

+---------------------+

| to_days('0603') |

+---------------------+

| 734291 |

+---------------------+

1 row in set (0.00 sec)

如果时间的比较很精确,精确到时秒分就需要转换成UNIX_TIMESTAMP,换算成毫秒值来比较大小。

mysql> select UNIX_TIMESTAMP('06021700');

+--------------------------------+

| UNIX_TIMESTAMP('06021700') |

+--------------------------------+

| 1601921820 |

+--------------------------------+

1 row in set (0.00 sec)

mysql> select UNIX_TIMESTAMP('06021800');

+--------------------------------+

| UNIX_TIMESTAMP('06021800') |

+--------------------------------+

| 1601921880 |

+--------------------------------+

1 row in set (0.00 sec)

分享到:

-08-24 10:40

浏览

分类:数据库

评论

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。