欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Sql随手笔记 » 正文

热门阅读

读取日期字段中的部分日期(datepart)

创建时间:2011年06月09日 20:32  阅读次数:(6609)
分享到:

[http://msdn.microsoft.com/zh-cn/library/ms174420.aspx]


DATEPART (Transact-SQL)

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

 Transact-SQL 语法约定

 语法

DATEPART ( datepart , date ) 参数
datepart
指定要返回的日期部分的参数。下表列出了 Microsoft SQL Server 2005 可识别的日期部分及其缩写。

日期部分  缩写 
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
 

week (wk, ww) 日期部分反映对 SET DATEFIRST 所做的更改。任意一年的 1 月 1 日均定义 week 日期部分的开头数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,其中,xxxx 是任意一年。

weekday (dw) 日期部分返回与一周的某一天对应的数字,例如:Sunday = 1, Saturday = 7。weekday 日期部分生成的数字取决于 SET DATEFIRST 所设置的值。这设置一周中的第一天。

date
表达式,用于返回 datetime 或 smalldatetime 值,或日期格式的字符串。仅对 1753 年 1 月 1 日之后的日期使用 datetime 数据类型。将之前的日期存储为字符数据。当输入 datetime 值时,应始终将其放入引号中。由于 smalldatetime 只精确到分钟,所以在使用 smalldatetime 值时,秒和毫秒始终为 0。

如果只指定年份的后两位数字,则小于或等于 two-digit year cutoff 配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果 two-digit year cutoff 是 2049(默认值),则 49 将被解释为 2049,而 50 则将被解释为 1950。为了避免产生歧义,请使用四位年份。

有关指定时间值的详细信息,请参阅时间格式。有关指定日期的详细信息,请参阅 日期和时间 (Transact-SQL)。

 返回类型
int

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

 示例
GETDATE 函数返回当前日期。但是,进行比较时并不总是需要提供完整日期;通常,只对日期的一部分进行比较。以下示例显示 GETDATE 和 DATEPART 的输出。


SELECT GETDATE() AS 'Current Date'
GO下面是结果集:


Current Date               
---------------------------
Feb 18 1998 11:46PM        

SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO下面是结果集:


Month Number
------------
2           
以下示例假设日期为 5 月 29 日。


SELECT DATEPART(month, GETDATE())
GO下面是结果集:


-----------
5          
(1 row(s) affected)在下面的示例中,日期被指定为数字。请注意,SQL Server 将 0 解释为 1900 年 1 月 1 日。


SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)下面是结果集:


----- ------ ------
1     1      1900

来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 56+62=? 的结果(结果是:118)
结  果: