SQL Server 日期和时间函数.docx

上传人:b****6 文档编号:6228715 上传时间:2023-01-04 格式:DOCX 页数:6 大小:16.88KB
下载 相关 举报
SQL Server 日期和时间函数.docx_第1页
第1页 / 共6页
SQL Server 日期和时间函数.docx_第2页
第2页 / 共6页
SQL Server 日期和时间函数.docx_第3页
第3页 / 共6页
SQL Server 日期和时间函数.docx_第4页
第4页 / 共6页
SQL Server 日期和时间函数.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

SQL Server 日期和时间函数.docx

《SQL Server 日期和时间函数.docx》由会员分享,可在线阅读,更多相关《SQL Server 日期和时间函数.docx(6页珍藏版)》请在冰豆网上搜索。

SQL Server 日期和时间函数.docx

SQLServer日期和时间函数

1、常用日期方法(下面的GetDate()='2006-11-0813:

37:

56.233')

(1)DATENAME(datepart,date)

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

Datepart详见下面的列表.

SELECTDateName(day,Getdate())–返回8

(2)DATEPART(datepart,date)

   返回表示指定日期的指定日期部分的整数。

SELECTDATEPART(year,Getdate())–返回2006

(3)DATEADD(datepart,number,date)

   返回给指定日期加上一个时间间隔后的新datetime值。

SELECTDATEADD(week,1,GetDate())--当前日期加一周后的日期

(4)DATEDIFF(datepart,startdate,enddate)

返回跨两个指定日期的日期边界数和时间边界数。

SELECTDATEDIFF(month,'2006-10-11','2006-11-01')--返回1

(5)DAY(date)

返回一个整数,表示指定日期的天datepart部分。

SELECTday(GetDate())–返回8

(6)GETDATE()

以datetime值的SQLServer2005标准内部格式返回当前系统日期和时间。

SELECTGetDate()  --返回2006-11-0813:

37:

56.233

(7)MONTH(date)

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

SELECTMONTH(GETDATE())--返回11

(8)YEAR(date)

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

SELECTYEAR(GETDATE())--返回2006

2、取特定日期

(1)获得当前日期是星期几

SELECTDateName(weekday,Getdate())--Wednesday

(2)计算哪一天是本周的星期一

SELECTDATEADD(week,DATEDIFF(week,'1900-01-01',getdate()),'1900-01-01') --返回2006-11-0600:

00:

00.000

SELECTDATEADD(week,DATEDIFF(week,0,getdate()),0)     

(3)当前季度的第一天

SELECTDATEADD(quarter,DATEDIFF(quarter,0,getdate()),0)—返回2006-10-0100:

00:

00.000

(4)如何取得某个月的天数

SELECTDay(dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,'2006-02-03')+1,0))) —返回28

(5)一个季度多少天

declare@mtinyint,@timesmalldatetime

select@m=month(getdate())

select@m=casewhen@mbetween1and3then1

                      when@mbetween4and6then4

                      when@mbetween7 and9then7

                      else10end

select@time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

selectdatediff(day,@time,dateadd(mm,3,@time))—返回92

(6)获得年月日(yyyy-MM-dd)

SELECTCONVERT(VARCHAR(10),GETDATE(),120)–返回2006-11-08

3、其它

(1)--下面的示例将日期指定为数字。

数据库引擎将0解释为1900年1月1日。

SELECTMONTH(0),DAY(0),YEAR(0)–返回1   1  1900

--下面两句是等效的

SELECTDATENAME(WEEKDAY,0)

SELECTDATENAME(WEEKDAY,'1900-01-01')

(2)SETDATEFIRST{number|@number_var}

将一周的第一天设置为从1到7的一个数字。

SETDATEFIRST1--表示一周的第一天是“星期一"

SELECTDATENAME(WEEKDAY,GETDATE())--Wednesday

SELECTDATEPART(weekday,GETDATE())--返回3

--查看当前设置情况

select@@DATEFIRST

(3)SETDATEFORMAT{format|@format_var}

设置用于输入datetime或smalldatetime数据的日期部分(月/日/年)的顺序。

...有效参数包括mdy、dmy、ymd、ydm、myd和dym。

...该设置仅用在将字符串转换为日期值时的解释中。

它不影响日期值的显示。

...SETDATEFORMAT的设置是在执行或运行时设置,而不是在分析时设置。

...SETDATEFORMAT将覆盖SETLANGUAGE的隐式日期格式设置。

下面是例子:

--Setdateformattoyear,day,month.

SETDATEFORMATydm;

GO

DECLARE@datevarDATETIME;

SET@datevar='1998/31/12';

SELECT@datevarASDateVar;

GO

--Setdateformattoyear,month,day.

SETDATEFORMATymd;

GO

DECLARE@datevarDATETIME;

SET@datevar='1998/12/31';

SELECT@datevarASDateVar;

GO

返回表示指定日期的指定日期部分的字符串

DateName(datepart,date)其中datepart可以是year,month,weekday

SELECTDATENAME(year,getdate())AS'YearName'--------返回:

2013

SELECTDATENAME(month,getdate())AS'MonthName' --------返回:

05

SELECTDATENAME(weekday,getdate())AS'WeekdayName'------返回:

星期三

3.DATEADD(datepart,number,date),向指定日期加上一段时间,返回新的datetime值。

selectDateAdd(MM,2,'2008-8-8')--------------返回:

2008-10-0800:

00:

00.000

selectDateAdd(dd,2,'2008-8-8')--------------返回:

2008-08-1000:

00:

00.000

selectdateadd(hh,-1,getdate())--------------返回:

2012-07-0215:

26:

25.240,返回前一个小时的时间

4.DATEDIFF(date-part,date-expression-1,date-expression-2) 返回两个日期之间的时间间隔

此函数计算两个指定日期之间的差值,结果为日期部分中等于(date2-date1)的有符号的整数值

SELECTdatediff(hour,'4:

00AM','5:

50AM')---------------------------返回:

1

SELECTdatediff(month,'1987/05/02','1995/11/15')------------------返回:

102

SELECTdatediff(day,'00:

00','23:

59')------------------------------返回:

0

SELECTdatediff(day, '1999/07/1900:

00', '1999/07/2323:

59')------返回:

4

SELECTdatediff(month,'1999/07/19','1999/07/23')------------------返回:

0

SELECTdatediff(month,'1999/07/19','1999/08/23')------------------返回:

1

date-part 参数可以是下列的值:

datepart

缩写

yy,yyyy

季度

qq,q

mm,m

年中的日

dy,y

dd,d

wk,ww

星期

dw,w

小时

hh

分钟

mi,n

ss,s

毫秒

ms

微妙

mcs

纳秒

ns

例如查询当天更新的数据

 

select*fromNewswheredatediff(dd,add_time,getdate())=0

5 DATEPART(datepart,date)返回代表指定日期的指定日期部分的整数。

--今天是2009-2-24星期二

SELECTDATEPART(year,getdate())as'Year'   --------返回:

2009

SELECTDATEPART(month,getdate())as'Month'  ---------返回:

2

SELECTDATEPART(weekday,getdate())as'Weekday'---------返回:

3,如:

Sunday=1、Saturday=7

SELECTDAY(getdate())            -----------------------返回:

24

备注:

DAY、MONTH、和YEAR函数分别是DATEPART(dd,date)、DATEPART(mm,date)、和DATEPART(yy,date)的同义词。

datapart日期部分

 

日期部分

缩写

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1