SQL Server 日期的加减函数: DATEDIFF DATEADD

SQL Server 日期的加减函数: DATEDIFF    DATEADD

DATEDIFF: 返回跨两个指定日期的日期边界数和时间边界数, 语法:DATEDIFF ( datepart , startdate , enddate ) 用 enddate 减去 startdate
    注:datepart 指定应在日期的哪一部分计算差额的参数,其日期相减时,只关注边界值,例SELECT DATEDIFF(YEAR,‘2008-12-31‘,‘2009-1-1‘) 返回 1
      
DATEADD : 返回给指定日期加上一个时间间隔后的新 datetime 值。 语法:DATEADD (datepart , number, date )
    注: datepart 指定要返回新值的日期的组成部分
        number 使用来增加 datepart 的值。正数表示增加,负数表示减少,如果是小数则忽略小数部分,且不做四舍五入。
  
通过 DATEDIFF 和 DATEADD 的一些日期计算
  
    1) 一年的第一天
      SELECT DATEADD(YEAR,DATEDIFF(YEAR,0,GETDATE()),0)
      注:首先DATEDIFF(YEAR,0,GETDATE()) --计算当前年份与 1900年相差的年数,然后通过计算1900-1-1加上相差的年数的日期即为当年第一天

2) 一个季的第一天
   SELECT DATEADD(Quarter,DATEDIFF(Quarter,0,GETDATE()),0)
      注:首先DATEDIFF(Quarter,0,GETDATE()) --计算当前月份与 1900年相差的季份数,然后通过计算1900-1-1加上相差的季份数的日期即为当季第一天

3) 一个月的第一天
      SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)
     注:首先DATEDIFF(MONTH,0,GETDATE()) --计算当前月份与 1900年相差的月份数,然后通过计算1900-1-1加上相差的月份数的日期即为当月第一天

4) 一周的第一天
   SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
   
5) 当天的半夜 (00:00:00.000)
      SELECT DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),0)  
   
6) 上月的最后一天
   SELECT DATEADD(ms,-3,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0))
      注:用本月的第一天减去3毫秒,即得出上个月的最有一天.SQL SERVER DATETIME类型的时间精确到3毫秒。

7) 本月的最后一天
      SELECT DATEADD(ms,-3,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0))

8) 本月的天数
      i) SELECT DAY(DATEADD(ms,-3,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)))
      ii)SELECT 32-DAY(GETDATE()+(32-DAY(GETDATE())))
  
    9) 本年的最后一天
      SELECT DATEADD(ms,-3,DATEADD(YEAR,DATEDIFF(YEAR,0,GETDATE())+1,0))

10) 一周的第一天
   SELECT DATEADD(DAY,1-DATEPART(weekday,GETDATE()),GETDATE())
   一周的最后一天
   SELECT DATEADD(DAY,7-DATEPART(WeekDay,GETDATE()),GETDATE())
     SELECT DATEADD(weekday,DATEDIFF(weekday,0,DATEADD(DAY,6-DATEPART(day,GETDATE()),GETDATE())),0)
   
5 日期转换函数 CONVERT CAST
CONVERT 中的 Style. 参数:108 和 114 可以只得到时间。
    例 SELECT CONVERT(NVARCHAR(12),GETDATE(),108) ---12:41:15
       SELECT CONVERT(NVARCHAR(12),GETDATE(),114) ---12:43:12:590

6 日期判断函数 ISDATE() 确定输入表达式是否为有效日期。若有效返回 1 否则返回 0 ,返回值为 INT 。

时间: 2024-11-08 21:57:09

SQL Server 日期的加减函数: DATEDIFF DATEADD的相关文章

四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName

我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数.SQL SERVER没有查一季度数据的函数. DateDiff函数: 描述 返回两个日期之间的时间间隔. 语法 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) DateDiff 函数的语法有以下参数: 参数 描述 interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参

Sql Server 日期转换大全

本博文转载,原博文:http://blog.csdn.net/baiduandxunlei/article/details/9180075 CONVERT(data_type,expression[,style])  convert(varchar(10),字段名,转换格式) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才用到. 语句 结果 SELECT CONVERT(varc

SQL Server日期时间格式转换字符串详解

1.日期时间转字符串 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006  10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select  CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100),  GETDATE(), 3): 16/05/06Select CONVERT(var

sql server日期时间转字符串

转自:http://www.cnblogs.com/zhangq723/archive/2011/02/16/1956152.html 一.sql server日期时间函数Sql Server中的日期与时间函数 1.  当前系统日期.时间     select getdate()  2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值   例如:向日期加上2天    select dateadd(day,2,'2004-10-15')  --返回:2004-1

SQL Server日期函数总结

获得一个月的天数:首先到得一个月最后一天的日期,通过 SQL Server 日期函数 day() 取得日期中的“天 ”部分 获得 2008 年 2 月份的天数:select day(cast('2008-03-01' as datetime) - 1) 获得本月天数: 返回一个整数,该整数表示指定的 date 是该月份的哪一天. select day(dateadd(month,1,getdate()) - day(getdate())) 获得上个月天数:select day(getdate()

SQL Server 日期时间转字符串

一.sql server日期时间函数 Sql Server中的日期与时间函数 1.  当前系统日期.时间     select getdate() 2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值    例如:向日期加上2天    select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数.    select datedif

SQL Server 日期函数:某天是星期几?

[鹏城万里] 发表于 www.sqlstudy.com 要得到某一天是星期几,需要用到 SQL Server 中的日期函数:datename(). 今天是星期几,例子 1: set language N'English' select datename(weekday, getdate()) Wednesday 今天是星期几,例子 2: set language N'Simplified Chinese' select datename(weekday, getdate()) 星期三 今天是星期

SQL Server 日期和时间函数

http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html 1.常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符串.Datepart详见下面的列表. SELECT DateName(day,Getdate()) –返回8 (2)DATEPART ( datepart , date

SQL Server日期函数应用

SQL SERVER 中提供了日期时间相关的函数,在编写SQL时,根据实际的业务要求,选择合适的函数使用. 日期函数应用: 1.获取当前日期时间 GETDATE() 2.获取日期时间中的一部分数据 DATENAME ( datepart , date )  返回date中datepart部分的字符串 DATEPART( datepart , date ) 返回date中datepart部分的整数 YEAR( date )  返回date中整数年 MONTH( date )   返回date中整数