您的位置:首页 > 数据库

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

2016-11-14 15:10 531 查看
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[, '格式'])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: