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