SqlServer中关于时间函数的应用
来源:互联网 发布:java lambda有啥好 编辑:程序博客网 时间:2024/05/18 03:54
SqlServer中关于时间函数的应用
SqlServer中关于时间函数的应用
通常在开发数据库应用中,都会涉及到与时间日期相关的查询操作的,
下面就这些常见的问题,总结一下。
首先介绍一下,在SQL Server中处理时间的函数比较常用就这下面几个,熟悉了这些时间函数的使用,
会使你在以后相关的时间日期查询中得心应手滴:
getdate()函数: 取得系统当前的日期和时间,返回datetime类型值
year()函数: 取指定时间的年份值,返回整数值
month()函数: 取指定时间的月份值,返回整数值
day()函数: 取指定时间的日期值,返回整数值
datepart()函数: 以整数的形式返回时间的指定部分(年,月,日等)。
dateadd()函数: 通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。
datediff()函数: 返回两个时间以指定时间部分来计算的差值,返回整数值
下面是一些时间缩写符号的意义和取值范围
yy 1753-9999 年份
qq 1-4 刻
mm 1-12 月
dy 1-366 日
dd 1-31 日
wk 1-54 周
dw 1-7 周几
hh 0-23 小时
mi 0-59 分钟
ss 0-59 秒
ms 0-999 毫秒
下面分别用例子说说上面的函数用法:
getdate()函数: 取得系统当前的日期和时间,返回datetime类型值
用法:getdate()
例子: 输出当前时间日期
select getdate() as now
输出结果:
now
2006-08-04 10:11:59.253
(1 row(s) affected)
year(),month(),day()函数:
用法:year(param),month(param),day(param)
参数说明:所有参数param都是个时间日期值
上面三个函数用法都很相似
我举一个例子:输入当前年份值
select year(getdate()) as [now year]
输出结果:
now year
2006
(1 row(s) affected)
datepart()函数:以整数的形式返回时间的指定部分(年,月,日等)。
用法:datepart(datepart,date)
参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute。
date是所指定的时间。
例子:
SELECT DATEPART(month, GETDATE()) AS [month]
输出结果:
Month
8
(1 row(s) affected)
dateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。
用法:dateadd(datepart,number,date)
参数说明:datepart(同上)
date(同上)
number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date
之前的时间值
例子:
select getdate() as [today]
select dateadd(day,-1,getdate()) as [yesterday]
select dateadd(day,1,getdate()) as [tomorrow]
输出:
today
1999-11-21 19:42:41.410
(1 row(s) affected)
yesterday
1999-11-20 19:42:41.410
(1 row(s) affected)
tomorrow
1999-11-22 19:42:41.410
(1 row(s) affected)
datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21之间以
天来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月
用法:datediff(darepart,date1,date2)
参数说明:datepart(同上)
date1、date2(同上date)
例子:相差几个月
select datediff(month,'1991-6-12','1992-6-21') as [month]
输出:
month
12
(1 row(s) affected)
下面是一些特殊时间日期查询的用法总结:
1.一个月第一天的
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
7.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
8.本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
9.本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
- SqlServer中关于时间函数的应用
- SqlServer 时间函数的应用(DateDiff )
- sqlserver分页中row_numer()函数的应用
- 关于sqlserver 的时间处理
- Linux中时间函数的应用接口
- bash中时间相关函数的应用
- 关于VC中时间函数的讨论
- c语言中关于时间的函数
- C语言中关于时间的函数
- C语言中关于时间的函数
- C语言中关于时间的函数
- C语言中关于时间的函数
- C语言中关于时间的函数
- C语言中关于时间的函数
- js中关于时间的一些函数
- c语言中关于时间的函数
- OC中关于时间的几个函数及格式化时间
- OC中关于时间的几个函数及格式化时间
- 形象管理:你想看起来更年轻吗?
- 《深入Spring2》第五章“AOP及在Spring中的应用”的电子版出来了
- ERP与十四顶帽子
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 在Spring2中使用引介
- SqlServer中关于时间函数的应用
- java业界新闻语音播报
- 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合
- EasyJF开源论坛安装视频演示
- 这样的开源基金设想行得通吗?
- 信息化项目手记(二)--CIO之位争夺记
- 从山丘锤王之死谈Spring AOP中的引介(Introduction)
- SELECT 赋值与ORDER BY冲突的问题
- 中国开源众生相-也谈“中国人的开源”