SQL Server 日期函数 集合DATEADD,DATEDIFF,DATENAME,DATEPART

来源:互联网 发布:淘宝宝贝描述模板购买 编辑:程序博客网 时间:2024/05/16 07:06

SQL Server 里的日期和时间函数,因为在这方面总是出问题,所以总结一下,本人主要用到的是DATEPART(month, GETDATE()) ,这个东西在ACCESS里可以直接day(now())就可以,可惜,SQL Server里的day()是不支持参数的.

SQL Server 里的日期和时间函数

这些标量函数对日期和时间输入值执行操作,并返回一个字符串、数字值或日期和时间值。

下表列出日期和时间函数以及它们的确定性属性。

函数确定性
DATEADD具有确定性
DATEDIFF具有确定性
DATENAME不具有确定性
DATEPART除了用作 DATEPART (dw, date) 外都具有确定性。dw 是工作日的日期部分,取决于由设置每周第一天的 SET DATEFIRST 所设置的值。
DAY具有确定性
GETDATE不具有确定性
GETUTCDATE不具有确定性
MONTH具有确定性
YEAR具有确定性

确定性函数和非确定性函数

所有的函数都是确定性或非确定性的:

  • 在使用特定的输入值集调用确定性函数的任何时候,它们总是返回相同的结果。
  • 在每次使用特定的输入值集调用非确定性函数时,它们可能返回不同的结果。

函数是否为确定性函数或非确定性函数称为函数的确定性。

例如,DATEADD 内置函数是确定性函数,因为对于其三个参数的任何给定参数值集总是返回相同的结果。GETDATE 不是确定性函数,因为总是使用相同的参数唤醒调用它,而它在每次执行时返回结果都不同。

 


 

打印出 pubs 数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上 21 天。

USE pubsGOSELECT DATEADD(day, 21, pubdate) AS timeframeFROM titlesGO

确定在 pubs 数据库中标题发布日期和当前日期间的天数。

USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titlesGO

 

从 GETDATE 返回的日期中提取月份名。

SELECT DATENAME(month, getdate()) AS 'Month Name'

 
GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
日期部分缩写
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw
Hourhh
minutemi, n
secondss, s
millisecondms
 
以上这个表如果你会的语言多的话可能会觉得太乱了,
各种语言有些地方是不一样的,但不知道您有没有发现,
不管什么语言,
他们都可以直接用全称而不必非要用缩写.这个我比较喜欢,什么时候不会写就直接用全称.
原创作者:柳永法(yongfa365)'Blog
原创粉丝点击