首页 > 代码库 > SQL日期和时间函数

SQL日期和时间函数

     使用这些函数可以计算日期和时间值。例如,假设您希望了解通常在一周中哪一天的销售量最高。使用 DAYOFWEEK 函数,您可以创建一个公式来标识每天的销售订单数量。再比如,假设您希望比较在过去的一年中的季度收益。使用 QUARTER 函数,您可以按季度划分整年的销售量。

日期和时间函数可使用以下数据类型:String、Integer 和 DateTime。其默认格式由本地计算机的区域设置决定。

datepart参数

datepart

缩写

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

 

用来获取日期和时间部分的函数

函数

语法

返回值

返回数据类型

确定性

DATENAME

DATENAME (datepart , date )

返回表示指定日期的指定datepart 的字符串。

nvarchar

不具有确定性

DATEPART

DATEPART (datepart , date )

返回表示指定 date 的指定datepart 的整数。

int

不具有确定性

DAY

DAY ( date )

返回表示指定 date 的“日”部分的整数。

int

具有确定性

MONTH

MONTH ( date )

返回表示指定 date 的“月”部分的整数。

int

具有确定性

YEAR

YEAR ( date )

返回表示指定 date 的“年”部分的整数。

int

具有确定性

详解:

一.DATENAME ( datepart , date )

返回表示指定日期的指定 datepart的字符串。Nvarchar类型

例:

SELECT DATENAME(year,getdate())--年

    ,DATENAME(month,getdate())--月

    ,DATENAME(day,getdate())--日

    ,DATENAME(dayofyear,getdate())--一年中的第几天

    ,DATENAME(quarter,getdate())--季节

    ,DATENAME(week,getdate())--星期

    ,DATENAME(weekday,getdate())--星期几

    ,DATENAME(hour,getdate())--小时

    ,DATENAME(minute,getdate())--分钟

    ,DATENAME(second,getdate());--秒钟

select getdate()--获取当前时间作为参照

备注

DATENAME 可用于选择列表 WHERE、HAVING、GROUP BY 和 ORDER BY 子句中。

二.DATEPART

DATEPART ( datepart , date )

返回表示指定 date 的指定 datepart的整数。Int类型

例:

SELECT DATEPART(year,getdate())--年

    ,DATEPART(month,getdate())--月

    ,DATEPART(day,getdate())--日

    ,DATEPART(dayofyear,getdate())--一年中的第几天

    ,DATEPART(quarter,getdate())--季节

    ,DATEPART(week,getdate())--星期

    ,DATEPART(weekday,getdate())--星期几         返回 1

    ,DATEPART(hour,getdate())--小时

    ,DATEPART(minute,getdate())--分钟

    ,DATEPART(second,getdate());--秒钟

注:datename与datepart意义相似但返回值不同,前者为字符串类型,后者为整形。如:datename(week,getdate()),返回值是星期一,星期二。。。而后者返回值为1,2,3,4。。。且礼拜天返回1

三.直接获取(只限于年月日)

SELECT YEAR(getdate())

MONTH(getdate())

DAY(getdate());

用来获取日期和时间差的函数

函数

语法

返回值

返回数据类型

确定性

DATEDIFF

DATEDIFF ( datepart ,startdate , enddate )

返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。

int

具有确定性

公式

结果

DATEDIFF(MONTH, #1/1/2009#, #3/31/2009#)

2

DATEDIFF(HOUR, #7/15/2006 3:30:29 AM#, #7/20/2006 5:30:29 AM#)

122

DATEDIFF(DAY, Sell Start DateSell End Date)

返回 Sell Start Date 和 Sell End Date 字段的每对实例之间相差的天数。

 

用来修改日期和时间值的函数

函数

语法

返回值

返回数据类型

确定性

DATEADD

 

DATEADD (datepart ,number , date )

通过将一个时间间隔与指定date 的指定 datepart 相加,返回一个新的 datetime值。

date 参数的数据类型。

具有确定性

说明

年份

DATEADD(year4,getdate())

DATEADD(yy4,getdate())

DATEADD(yyyy4,getdate())

月份

DATEADD(month5,getdate())

DATEADD(mm5,getdate())

DATEADD(m5,getdate())

天数

DATEADD(day4,getdate())

DATEADD(dd4,getdate())

DATEADD(d4,getdate())

季节

DATEADD(quarter1,getdate())

DATEADD(qq1,getdate())

DATEADD(q1,getdate())

星期

DATEADD(week,1,getdate())

DATEADD(ww,1,getdate())

DATEADD(wk,1,getdate())

DATEADD(hour4,getdate())

DATEADD(minute4,getdate())

DATEADD(second4,getdate())

 

SQL日期和时间函数