Mysql中時間加減和比較大小的方法

2021-08-30 16:52:11 字數 2139 閱讀 4803

在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') |

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

| 20100611 |

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

1 row in set (0.00 sec)

取到小時。

mysql> select date_format(now(),'%y%m%d%h');

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

| date_format(now(),'%y%m%d%h') |

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

| 2010061121 |

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

1 row in set (0.00 sec)

mysql中直接比較時間大小也是不能用》或<

只能轉換成數字來比較大小。

如果比較天的大小,1號小於2號。需要轉換成到現在為止的天數。用到的是to_days(),

mysql> select to_days('20100602');

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

| to_days('20100602') |

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

| 734290 |

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

1 row in set (0.00 sec)

mysql> select to_days('20100603');

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

| to_days('20100603') |

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

| 734291 |

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

1 row in set (0.00 sec)

如果時間的比較很精確,精確到時秒分就需要轉換成unix_timestamp,換算成毫秒值來比較大小。

mysql> select unix_timestamp('201006021700');

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

| unix_timestamp('201006021700') |

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

| 1601921820 |

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

1 row in set (0.00 sec)

mysql> select unix_timestamp('201006021800');

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

| unix_timestamp('201006021800') |

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

| 1601921880 |

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

1 row in set (0.00 sec)

Mysql中時間加減和比較大小的方法

在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...

python時間如何相加減,,如何比較大小

時間字串 時間元組 時間戳 這個是轉換之間的概念 當前時間 字串2022 05 01 00 00 00 時間元組 time.struct time tm year 2022,tm mon 5,tm mday 1,tm hour 0,tm min 0,tm sec 55,tm wday 6,tm yd...

mysql和sql時間 字段比較大小的問題

不能用兩個字串比較的小的方法來做。例如 2010 10 20 2010 12 15 正解 都是,後面的時間 前面的時間 mysql select count from table wheretimestampdiff hour,2008 08 08 12 00 00 2008 08 08 00 00...