1 . YEAR , MONTH , DAY函数
YEAR , MONTH , DAY函数可以提取函数DATETIME数据类型中的年、月、日信息
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([BirthDay] datetime)
insert [tb]
select '2010-05-15 12:10.000' union all
select '2010-01-25 02:11.000' union all
select '2010-03-20 23:55.000' union all
select '2010-02-22 22:20.000' union all
select '2010-05-29 11:11.000' union all
select '2010-04-17 20:02.000'
将出生年月日分开显示:
select year(BirthDay) as '出生年份',month(BirthDay) as '出生月份',day(BirthDay) as '具体那天'
from [tb] order by BirthDay
结果为
出生年份 出生月份 具体哪天
------------------------------
2010 1 25
2010 2 22
2010 3 20
2010 4 17
2010 5 15
2010 5 29
将日期组合起来:
select BirthDay,cast(year(BirthDay) as varchar(4))+'年'
+cast(month(BirthDay) as varchar(2))+'月'
+cast(day(BirthDay) as varchar(2))+'日' as '出生年月'
from [tb]
order by BirthDay
结果
BirthDay 出生年月
-------------------------------------
2010-01-25 02:11:00.000 2010年1月25日
2010-02-22 22:20:00.000 2010年2月22日
2010-03-20 23:55:00.000 2010年3月20日
2010-04-17 20:02:00.000 2010年4月17日
2010-05-15 12:10:00.000 2010年5月15日
2010-05-29 11:11:00.000 2010年5月29日
2 . GETDATE 函数
GETDATE 函数用于获取当前系统日期时间
select convert(varchar,getdate(),20) as '现在的时间'
结果
现在的时间
----------------------------------
2010-07-02 13:39:53
select cast(getdate() as char(20)) as '现在的时间'
结果
现在的时间
----------------------------
07 2 2010 1:42PM
3 . DATEADD函数
DATEADD函数用于计算将当前时间延后的日期
语法:DATEADD( datepart , number , date )
datepart指定要返回新值的日期的组成部分,见下表
number用于与datepart相加的值,若为非整数,小数部分被舍去
date表达式用于返回datetime或smalldatetime值,或日期格式的字符串
select dateadd(day,10,getdate()) as '十天后的现在时间为'
结果
十天后的现在时间为
--------------------------
2010-07-12 13:46:40.280
4 . DATEDIFF函数
DATEDIFF函数用于计算两个日期之间的差值
use practiceDB
GO
create table studentInfo
(
sno char(15),
sname char(10),
sex char(3),
birthday datetime
)
insert studentInfo
select '10001','李华','男','1987-02-15 11:50.259' union all
select '10005','霍思敏','女','1989-12-05 10:22.000' union all
select '10012','黄玲','女','1977-05-11 01:44.009' union all
select '10011','顾唯','女','1999-02-01 00:55.200' union all
select '10024','郝丽荣','女','2001-10-10 03:50.200' union all
select '10019','马龙','男','1961-08-14 09:51.229' union all
select '10027','孙虎','男','1991-12-12 12:51.000'
select sno,sname,sex,birthday,datediff(year,birthday,getdate()) as '年龄'
from studentInfo
order by sno
结果
Sno sname sex birthday 年龄
-------------------------------------------------------------
10001 李华 男 1987-02-15 11:50:00.260 23
10005 霍思敏 女 1989-12-05 10:22:00.000 21
10011 顾唯 女 1999-02-01 00:55:00.200 11
10012 黄玲 女 1977-05-11 01:44:00.010 33
10019 马龙 男 1961-08-14 09:51:00.230 49
10024 郝丽荣 女 2001-10-10 03:50:00.200 9
10027 孙虎 男 1991-12-12 12:51:00.000 19
5 . DATENAME函数
DATENAME函数返回表示指定日期的指定日期部分的字符串
语法:DATENAME( < datepart > , < date > )
datepart是指定要返回id日期部分的参数
日期部分 | 缩写 |
year | yy , yyyy |
quarter | qq , q |
month | mm,m |
dayofyear | dy , y |
day | dd , d |
week | wk , ww |
weekday | dw |
hour | hh |
minute | mi , n |
second | ss , s |
millisecond | ms |
weekday (dw) 日期部分返回星期几(如星期日、星期一等)。
dateb表达式,用于返回datetime 或smalldadtetime值,或日期格式的字符串
返回结果:nvarchar
SELECT DATENAME(year, GETDATE()) AS 'Year Name'
结果
Year Name
----------------
2010
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
结果
Month Name
----------------
07
SELECT DATENAME(weekday, GETDATE()) AS 'Day Name'
结果
Day Name
-------------
星期五
6 . DATEPART函数
DATEPART函数返回表示指定日期的指定日期部分的整数
语法:DATEPART( <datepart> , <date> )
datepart参数同上表
date表达式,用于返回datetime或smalldatetime值,或日期格式的字符串
返回类型:int
select datepart(month,getdate()) as 'Month Number'
结果
Month Number
------------------
07