SQL dateadd datediff函数
2009-10-28 13:18
411 查看
----------------------------时间操作--------------------------------------- --日期部分 缩写 --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 --weekday (dw) 日期部分返回星期几(如星期日、星期一等)。 select dateadd(month,datediff(month,0,getdate()),0) -----获得第一个月的第一天 select dateadd(week,datediff(week,0,getdate()),0) -----获得本周的星期一 select dateadd(year,datediff(year,0,getdate()),0)-----获得一年的第一天 select dateadd(qq,datediff(qq,0,getdate()),0)-------获得本季度的第一天 select dateadd(ms,-3, dateadd(month,datediff(month,0,getdate()),0))-----获得上个月最后一天(思路:获得本月的第一天然后减去-3毫秒;因为SQL中时间精确到3毫秒) select dateadd(ms,-3, dateadd(year,datediff(year,0,getdate()),0))-----获得去年的最后一天时间 select dateadd(ms,-3,dateadd(month,datediff(month,0,getdate())+1,0))------获得本月的最后一天(思路:获得下一个月的第一天,然后减去时间的最小单位三毫秒) select dateadd(ms,-3,dateadd(year,datediff(year,0,getdate())+1,0))--------获得本年的最后一天 select dateadd(week,datediff(week,0,getdate()),0) select datepart(year,getdate())----返回现在时间中的年 select datename(weekday,getdate())-----返回现在时间的星期 select datename(dayofyear,getdate())----返回今天在一年中的第好多天 select datename(qq,getdate())----返回现在属于第几个季度 -----获得本月的总共天数:思路select datediff(day,'2009-10-15','2009-11-15') select datediff(day, convert(varchar(20),datepart(year,getdate()))+ '-'+convert(varchar(20),datepart(month,getdate()))+ '-'+'15', convert(varchar(20),datepart(year,getdate()))+ '-'+convert(varchar(20),datepart(month,getdate())+1)+ '-'+'15') -----获得输入月份的总天数 declare @month int set @month=10 select datediff(day, convert(varchar(20),datepart(year,getdate()))+ '-'+convert(varchar(20),@month)+ '-'+'15', convert(varchar(20),datepart(year,getdate()))+ '-'+convert(varchar(20),@month+1)+ '-'+'15') -----获取本年的二月是否是瑞年 思路:select datediff(day,'2009-02-01','2009-03-01') select case datediff(day,convert(varchar(20),datepart(year,getdate()))+'-02-01',convert(varchar(20),datepart(year,getdate()))+'-03-01') when 28 then '平年' else '瑞年' end -----获得一个季度有多少天(瑞年能够被四整除并且不能被100征程获得能够被400整除case when then||case when then else declare @time varchar(20) set @time ='2009-10-23' select case datepart(qq,@time) when 1 then (case when (year(@time)%4=0 and year(@time)%100<>0) or year(@time)%400=0 then 91 else 90 end) when 2 then 91 when 3 then 92 when 4 then 92 end -----------------------------------------------------------------------------------------------------------
相关文章推荐
- 【原】Sql中时间处理函数 DateAdd & DateDiff
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
- SQL Server DATEADD() 函数
- SQL Server DATEADD() 函数
- SQL DATEADD函数
- SQL Server DATEDIFF() 函数
- SQL Server DATEADD() 函数
- SQL---DATE_ADD()函数
- EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。
- SQL Server DATEADD() 函数
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
- sql server DATEADD 函数添加日期时间
- SQL Server 日期的加减函数: DATEDIFF DATEADD
- SQL DATEADD() 函数
- SQL Server 日期的加减函数: DATEDIFF DATEADD
- SQL Server DATEADD() 函数
- SQL Server 日期的加减函数: DATEDIFF DATEADD
- SQL Server DATEADD() 函数
- SQL Server DATEADD() 函数