1. 程式人生 > >資料庫常見時間函式的用法

資料庫常見時間函式的用法

  1、MySQL 資料庫  


    日期格式轉換:date_format(date,format), time_format(time,format)

    使用DATE_FORMAT(資料庫欄位,'%Y%m%d')將時間型別欄位格式為"yyyy-mm-dd"字串格式

   str_to_date(資料庫欄位,'%m.%d.%Y')將字串型別欄位格式為"yyyy-mm-dd"時間格式

 2、SQL server 資料庫


---獲得系統當前時間
select getdate()   ---2016-11-14 10:40:40.987


---在指定日期中增減時間間隔  dateadd
select dateadd(day,1,getdate())   ---2016-11-15 10:41:22.843
select dateadd(day,-1,getdate())  ---2016-11-13 10:41:47.830


select dateadd(month,1,getdate()) --2016-12-14 10:42:10.330
select dateadd(month,-1,getdate())--2016-10-14 10:42:25.913


select dateadd(year,1,getdate())  --2017-11-14 10:43:03.557
select dateadd(year,-1,getdate())  --2015-11-14 10:43:19.120


---返回指定日期之間的時間間隔
select datediff(day,'2016-11-18','2016-10-01')  -- -48
select datediff(day,'2016-10-01','2016-11-18')  --  48


select datediff(month,'2015-12-01','2016-11-18')  --11
select datediff(month,'2016-12-01','2015-11-18')  --13


select datediff(year,'2016-12-01','2015-11-18')   -- -1
select datediff(year,'2015-12-01','2016-11-18')   -- 1
 
--select getdate()   ---2016-11-14 10:40:40.987
select getdate()                --2016-11-14 11:13:28.000
---返回指定日期的單獨部分
select datepart(mm,getdate())--11     
select datepart(yy,getDate())--2016
select datepart(dd,getdate())--14
select datepart(dy,getdate())--319
select datepart(wk,getdate())--47
select datepart(dw,getdate())--2
select datepart(qq,getdate())--4
select datepart(hh,getdate())--11
select datepart(mi,getdate())--15
select datepart(ss,getdate())--6

   等同於:

select year(getdate()) 
select month('2016-02-14 11:36:19.727')  
select DAY(getdate())    --14

---獲得指定時間型別部分
select datename(year, getdate())   ---2016
select datename(weekday, getdate())   ---星期幾

--日期與字串之間的轉換函式
select cast('2016-11-14 11:24:43.900' as date) 
select convert(date,'2016-11-14 11:24:43.900')

select CONVERT(varchar, getdate(), 120 )   ---2016-11-14 11:08:10
select CONVERT(varchar(10),getdate(),120)
select CONVERT(varchar, getdate(), 111 )   --2016/11/14
select CONVERT(varchar, getdate(), 112 )   --20161114
select CONVERT(varchar, getdate(), 102 )   --2016.11.14

--

引數結果
-- 100  05  8 2006  9:27PM 
-- 101  05/08/2006 
-- 102  2006.05.08 
-- 103  08/05/2006 
-- 104  08.05.2006 
-- 105  08-05-2006 
-- 106  08 05 2006 
-- 107  05 08, 2006 
-- 108  21:30:51 
-- 109  05  8 2006  9:31:11 
-- 110  05-08-2006 
-- 111  2006/05/08 
-- 112  20060508 
-- 113  08 05 2006 21:31:59 
-- 114  21:33:06:503 
-- 120  2006-05-08 21:33:38 

3、oracle時間處理函式

(1)使用TO_CHAR函式處理數字 

          TO_CHAR(number, '格式')    

          TO_CHAR(salary,’$99,999.99’);

(2)使用TO_CHAR函式處理日期
          TO_CHAR(date,’格式’);
          to_char(sysdate,'q')   季   
          to_char(sysdate,'yyyy')年   
          to_char(sysdate,'mm')月   
          to_char(sysdate,'dd')日   
          to_char(sysdate,'d')星期中的第幾天
          to_char(sysdate,'DAY')星期幾
          to_char(sysdate,'ddd')一年中的第幾天

 (3)TO_NUMBER
         使用TO_NUMBER函式將字元轉換為數字
         TO_NUMBER(char[, '格式'])
 (4) TO_DATE 
         使用TO_DATE函式將字元轉換為日期
         TO_DATE(char[, '格式'])