数据库常见时间函数的用法

  1、MySQL 数据库  

   

NOW() 返回当前的日期和时间
CURDATE() 返回当前的日期
CURTIME() 返回当前的时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回日期/时间按的单独部分
DATE_ADD() 给日期添加指定的时间间隔
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间

    日期格式转换: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 数据库

函数 描述
GETDATE() 返回当前日期和时间
DATEPART() 返回日期/时间的单独部分
DATEADD() 在日期中添加或减去指定的时间间隔
DATEDIFF() 返回两个日期之间的时间
CONVERT() 用不同的格式显示日期/时间

---获得系统当前时间
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[, '格式'])



  

你可能感兴趣的:(数据库)