四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName
我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数。SQL SERVER没有查一季度数据的函数。
DateDiff函数:
描述
返回两个日期之间的时间间隔。
语法
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函数的语法有以下参数:
参数 描述 interval 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。 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 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“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”间隔符号的计算产生影响。
如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在 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 的一部分。 下表列出了所有有效的 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 或 datetimeoffset 值的表达式。 date 可以是表达式、列表达式、用户定义的变量或字符串文字。
为避免不确定性,请使用四位数年份。 有关两位数年份的信息。
返回类型:navarchar
四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName的更多相关文章
- SQL Server日期函数之获得一个月中的天数
SQL Server日期函数之获得一个月中的天数在实际中的应用比例还是占为多数的,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱,望会在以后的学习或是工作中带来很大的帮助. 获得一个月 ...
- SQL Server日期函数总结
获得一个月的天数:首先到得一个月最后一天的日期,通过 SQL Server 日期函数 day() 取得日期中的“天 ”部分 获得 2008 年 2 月份的天数:select day(cast('200 ...
- SQL Server 日期函数:某天是星期几?
[鹏城万里] 发表于 www.sqlstudy.com 要得到某一天是星期几,需要用到 SQL Server 中的日期函数:datename(). 今天是星期几,例子 1: set language ...
- Sql server 日期函数和日期转换
时间函数 SQL Server Date 函数 下面的表格列出了 SQL Server 中最重要的内建日期函数: 函数 描述 GETDATE() 返回当前日期和时间 DATEPART(Type,dat ...
- sql server 日期函数
一.sql server日期时间函数Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基 ...
- SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName
一,月份的最后一天 函数 EOMonth 返回指定日期的最后一天 EOMONTH ( start_date [, month_to_add ] ) 1,对于start_date 有两种输入方式,能够转 ...
- SQL Server 日期函数大全
一.统计语句 1.--统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT( ...
- Sql server日期函数用法
SQL日期函数 SQL日期函数中的类型码可以为0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 ,20,21,22,23,24,25,100,101,102,103,104,105 ...
- sql server 日期处理datediff
语法: DATEDIFF(datepart,startdate,enddate) datepart 参数可以是下列的值: date-part : year | quarter | month | we ...
随机推荐
- 【POJ】3070 Fibonacci(矩阵乘法)
http://poj.org/problem?id=3070 根据本题算矩阵,用快速幂即可. 裸题 #include <cstdio> #include <cstring> # ...
- CSS光标属性一览表
光标类型 CSS 把你的光标放到相应文字上查看效果 要注意光标的实际效果依赖于用户的系统设置,与你在这里看到的效果并不一定一致. 十字准心 cursor: crosshair; 手 cursor: p ...
- VTK 6.3.0 Qt 5.4 MinGW 4.9.1 Configuration 配置
Download VTK 6.3.0 Download Qt 5.4 with MinGW 4.9.1 Download CMake 3.2.0 I assume you've already ins ...
- 当PHP引擎试图实例化一个未知类的操作
在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来,但是这样可能会使得在引用文件的新脚本中,存在大量的includ ...
- fail2ban 保护
Fail2ban是一款非常使用的软件,它能够监控系统日志,能够有效的防止ssh被暴力破解,下面小编将针对Fail2ban在Linux下的安装和使用给大家做个介绍,一起来了解下吧. https://gi ...
- OC中属性及方法
1.声明式属性 a.实例变量 b.声明属性 自动生成setter/getter方法 .h ->@property 属性类型 属性名; .m ...
- php处理数组函数大全
PHP:指示支持该函数的最早的 PHP 版本. 函数 描述 PHP array() 创建数组. 3 array_change_key_case() 返回其键均为大写或小写的数组. 4 array_ch ...
- emacs tutorial笔记
emacs tutorial笔记---基本控制 C-字母 表示一起按下Ctrl和字母/ 表示“或者”的意思 C - ctrlM - alt C-p C-b C-f C-n C-l 当前行放中央 ...
- DS实验题 order
算法与数据结构 实验题 6.4 order ★实验任务 给出一棵二叉树的中序遍历和每个节点的父节点,求这棵二叉树的先序和后序遍历. ★数据输入 输入第一行为一个正整数n表示二叉树的节点数目,节点编号从 ...
- Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作
[连接运算符 + ] <script> console.log(1+2+'a'+3+4); </script> 输出: 3a34 [逻辑运算符]返回的是最早能判断表达式结果的那 ...