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'
日期部分
缩写
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
以上这个表如果你会的语言多的话可能会觉得太乱了,
各种语言有些地方是不一样的,但不知道您有没有发现,
不管什么语言,
他们都可以直接用全称而不必非要用缩写.这个我比较喜欢,什么时候不会写就直接用全称.
原创作者:柳永法(yongfa365)'Blog