mysq比較時間

2021-05-23 12:52:37 字數 2747 閱讀 3963

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

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

select agent_id from bss_sys_user where unix_timestamp(date_format(last_date,'%y%m%d%h%i')) < unix_timestamp(date_format('2010-10-08','%y%m%d'));

在兩個時間之間

select agent_id from bss_sys_user where unix_timestamp(date_format(last_date,'%y%m%d%h%i')) > unix_timestamp(date_format('2010-10-08','%y%m%d')) and exists(select agent_id from bss_sys_user where unix_timestamp(date_format(last_date,'%y%m%d%h%i')) > unix_timestamp(date_format('2010-12-08','%y%m%d')));

時間的比較

當想要比較兩個時間的大小的時候,通過一下方式 例 問題 讓使用者輸入兩個時間,然後對這兩個時間進行比較 解答 實現步驟 scanner input new scanner system.in system.out.println 請輸入乙個時間 yyyy mm dd string date1 inp...

時間大小比較

1.整點時間大小比較 例 08 20 21 和 08 22 23的大小 let z 20 01 00 let z1 10 00 00 let date new date console.log date fri jul 17 2020 09 54 52 gmt 0800 中國標準時間 let a z...

JS比較時間大小

var yourtime document.getelementbyid begin time value var yourtime 2010 12 10 11 12 yourtime yourtime.replace 替換字元,變成標準格式 var d2 new date 取今天的日期 var d...