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

我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数。SQL SERVER没有查一季度数据的函数。

DateDiff函数:

描述

返回两个日期之间的时间间隔。

语法

DateDiff(interval,
date1, date2
[,firstdayofweek[,
firstweekofyear]])

DateDiff 函数的语法有以下参数:


















参数 描述
interval 必选。字符串表达式,表示用于计算
date1date2
之间的时间间隔。有关数值,请参阅“设置”部分。
date1,
date2
必选。日期表达式。用于计算的两个日期。
firstdayofweek 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1
日所在的星期。有关数值,请参阅“设置”部分。

设置

interval 参数可以有以下值:


































设置 描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
m 分钟
s

firstdayofweek 参数可以有以下值:







































常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API
设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

firstweekofyear 参数可以有以下值:






















常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API
设置。
vbFirstJan1 1 由 1 月 1
日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。

说明

DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用
DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。

要计算 date1date2
相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval
为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果
date1 是星期一,则 DateDiff 计算到
date2 之前星期一的数目。此结果包含 date2 而不包含
date1。如果 interval 是“周”(“ww”),则
DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1
date2 之间星期日的数目。如果 date2
是星期日,DateDiff 将计算 date2,但即使
date1 是星期日,也不会计算 date1

如果 date1 晚于 date2,则
DateDiff 函数返回负数。

firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果 date1date2
是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1date2
被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1date2
表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1
日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。

DatePart函数:

描述

返回给定日期的指定部分。

语法

DatePart(interval,
date[,
firstdayofweek[,
firstweekofyear]])

DatePart 函数的语法有以下参数:



















参数 描述
interval 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date 必选。要计算的日期表达式。
firstdayof
week
可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1
日所在的星期。有关数值,请参阅“设置”部分。

设置

interval 参数可以有以下值:


































设置 描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
m 分钟
s

firstdayofweek 参数可以有以下值:







































常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API
设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

firstweekofyear 参数可以有以下值:























常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API
设置。
vbFirstJan1 1 由 1 月 1
日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。

说明

DatePart 函数用于计算日期并返回指定的时间间隔。例如使用
DatePart 计算某一天是星期几或当前的时间。

firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。

如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果
date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date
表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

DateAdd函数:

描述

返回已添加指定时间间隔的日期。

语法

DateAdd(interval,
number,
date)

DateAdd 函数的语法有以下部分:
















部分 描述
interval 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date 必选。Variant 或要添加
interval 的表示日期的文字。

设置

interval 参数可以有以下值:


































设置 描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
n 分钟
s

说明

可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用
DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向
date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。

DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:

NewDate = DateAdd("m", 1, "31-Jan-95")


在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果
date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。

如果计算的日期是在公元 100 年之前则会产生错误。

如果 number 不是 Long
型值,则在计算前四舍五入为最接近的整数。

DateName函数:

date to return.‘
data-guid="713ed076ffb955f34b0d3b92423e4ec6">是返回的 date 的一部分。 datepart arguments.‘
data-guid="779da34bf748e207444a470efc26cdbc">下表列出了所有有效的 datepart 参数。 用户定义的变量等效项无效。

语法:DATENAME ( datepart
, date )



















































datepart

缩写形式

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

weekday

dw, w

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

TZoffset

tz

ISO_WEEK

ISOWK, ISOWW

date

time, date, smalldatetime, datetime, datetime2, or datetimeoffset value.‘
data-guid="c3cad684f54804dc01ebfa03df91816c">是一个可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值的表达式。 date can be an expression, column expression, user-defined variable, or string literal.‘
data-guid="c4aec5bacc8ba5316ab49debd0bdfd95">date
可以是表达式、列表达式、用户定义的变量或字符串文字。

为避免不确定性,请使用四位数年份。 Configure the two digit year cutoff Server Configuration Option.‘
data-guid="1d715233db4169fac877be109dba08f1">有关两位数年份的信息。

Configure the two digit year cutoff Server Configuration Option.‘
data-guid="1d715233db4169fac877be109dba08f1">返回类型:navarchar

Configure the two digit year cutoff Server Configuration Option.‘
data-guid="1d715233db4169fac877be109dba08f1">来源:www.Microsoft.com

四个很好用的Sql Server
日期函数:DateDiff、DatePart、DateAdd、DateName,布布扣,bubuko.com

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

时间: 2024-10-07 12:58:30

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

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 日期函数:某天是星期几?

[鹏城万里] 发表于 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日期函数应用

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

SQL Server日期函数

当前系统日期.时间 select getdate() 2015-06-18 14:52:27.123 提取日期中的数据 day(), month(),year() select getdate(); – 2015-06-18 14:52:27.123 select YEAR(getdate()); – 2015 select MONTH(getdate()); – 6 select day(getdate()); – 18 日期格式转换 CONVERT SELECT CONVERT(char(1

sql server 日期处理datediff

语法: DATEDIFF(datepart,startdate,enddate) datepart 参数可以是下列的值: date-part : year | quarter | month | week | day | hour | minute | second | millisecond 参数 date-part    指定要测量其间隔的日期部分. datepart 缩写 年 yy, yyyy 季度 qq, q 月 mm, m 年中的日 dy, y 日 dd, d 周 wk, ww 星期

sql server 日期函数 [LocalTimeToUTC]、[UtcToLocalTime]、ConverToMidnight函数

AX 2012表定义中,datetime类型默认值为utc微秒置0,之前的procedure 中日期有的是hardcode,谈判有的是getdate(),在马拉,太国,turky,US,格林威冶时间,us turky与祖国有时差 对比 select dateadd(millisecond, -datepart(millisecond,getutcdate()),getutcdate()) SELECT getdate(),getdate(),getdate(),getdate() 如图 同一查询

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 聚合函数算法优化技巧

Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值执行计算并返回单一的值.聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. v1.写在前面 如果有对Sql server聚合函数不熟或者忘记了的可以看我之前的一片博客.sql server 基

数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函数的基本类型是: Aggregate 函数 Scalar 函数 合计函数(Aggregate functions) Aggregate 函数的操作面向一系列的值,并返回一个单一的值. 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使