[[439449]]
本文转载自微信公众号「SQL数据库蛊卦」,作家丶鄙俗宇宙 沙巴在线 。转载本文请计划SQL数据库蛊卦公众号。
平常咱们在野心时分或推算日历时皆会用到一些日历函数,大多皆是些相比常见的,比如YEAR(),MONTH(),DATEADD()等等,今天给大众磨真金不怕火一些相比高档的日历函数。
测试环境SQL Server 2017
皇冠比分 &DATEFIRST作用
针对特定会话,此函数复返 SET DATEFIRST 确面前值。
语法
&DATEFIRST
得当:
SET DATEFIRST n 指定一周的第一天(日曜日、星期一、星期二等) 。 n 值的鸿沟为 1 到 7 。
示例
比如咱们指定星期天为每周第一天,那么今天(2021-12-08)的
&DATEFIRST就会复返1。具体如下:
SET DATEFIRST 1; --暗示星期一为每周第一天 SELECT &DATEFIRST; --复返DATEFIRST的值
着力:
这个函数的可能好多东说念主合计作用不大,其实对树立每周的第一天是很垂危的。好意思国事把每周的星球日当第一天,而我国平时把星期一当为每周的第一天。
比如我念念知说念上周第3天的销量,你就需要先界说上周的星期几是第1天,智力进一步野心第3天的销量。
系统时分取得系统时分有一组函数,常见的有GETDATE函数,此外还有这些函数。
SELECT SYSDATETIME() SELECT SYSDATETIMEOFFSET() SELECT SYSUTCDATETIME() SELECT CURRENT_TIMESTAMP SELECT GETDATE() SELECT GETUTCDATE()
着力:
其中包含UTC的系统时分是宇宙圭臬时分,其他为面前时区时分。
得当:CURRENT_TIMESTAMP与GETDATE()函数等价。
DATEADD作用
将指定的 number 值(算作带标识整数)与输入 date 值的指定 datepart 相加,然后复返该修改值 。
语法
DATEADD (datepart , number , date )
其中datepart参数由系统界说,具体参数列表如下:
datepart 缩写 年 yy, yyyy 季度 qq, q 月 mm, m 年中的日 dy, y 日 dd, d 周 wk, ww 星期 dw, w 小时 hh 分钟 mi, n 秒 ss, s 毫秒 ms 巧妙 mcs 纳秒 ns示例
查询上个月的今天,下个月的今天
SELECT DATEADD(month, -1, '20211208'); SELECT DATEADD(month, 1, '20211208');
着力:
作用
复返指定的 startdate 和 enddate 之间所跨的指定 datepart 鸿沟的计数(算作带标识整数值) 。
语法
DATEDIFF ( datepart , startdate , enddate )
得当:复返值为startdate 与 enddate 之间的 int 互异,以 datepart 树立的鸿沟暗示 。
示例
野心前年第一天到今天之间有几许天
SELECT DATEDIFF(DAY,'20200101','20211208')
着力:
网站以其丰富博彩游戏赛事直播博彩攻略技巧分享,广大博彩爱好者提供优质博彩服务多样化博彩游戏,您博彩游戏中尽情享受乐趣收益。作用
此函数复返映射到指定年、月、日值的 date 值 。
语法
DATEFROMPARTS ( year, month, day )
得当:
DATEFROMPARTS 复返一个 date 值,其中日历部分树立为指定的年、月和日,时分部分树立为默许值 。 关于无效参数,DATEFROMPARTS 将激励失误。 要是至少有一个必需参数具有 NULL 值,则 DATEFROMPARTS 复返 NULL。 此函数可在 SQL Server 2012 (11.x) 及更高版块的职业器上实际云尔处罚。 它不可无法在版块低于 SQL Server 2012 (11.x) 的职业器上实际云尔处罚。示例
通过指定具体的年月日,复返今天的日历:
SELECT DATEFROMPARTS ( 2021, 12, 8 ) AS Result;
着力
作用
复返暗示指定 date 的指定 datepart 的字符串。
语法
DATENAME ( datepart , date )
示例
SELECT DATENAME(year, getdate()) 'Year' ,DATENAME(month, getdate()) 'Month' ,DATENAME(day, getdate()) 'Day' ,DATENAME(weekday,getdate()) 'Weekday';
着力:
通过此函数,咱们可以知说念具体某一天的年月日星期等具体信息。相称是在进行数据分组统计时络续用到。
DATEPART作用
复返暗示指定 date 的指定 datepart 的整数。
语法
DATEPART ( datepart , date )
示例
SELECT DATEPART(year, getdate()) 'Year' ,DATEPART(month, getdate()) 'Month' ,DATEPART(day, getdate()) 'Day' ,DATEPART(weekday,getdate()) 'Weekday';
着力:
得当的同学可能发现DATEPART和DATENAME有好多相通之处,然则请得当他们复返的类型是不同的,DATEPART复返的是数值类型,DATENAME复返的是字符串类型。
皇冠体育信用盘+带新版老版手机端 EOMONTH作用
复返包含指定日历地方月份的临了一天(具有可选偏移量)
语法
EOMONTH ( start_date [, month_to_add ] )
示例
皇冠直播ios露出本月的临了一天
--界说一个日历类型的变量,而且给它赋值20211208 DECLARE @date DATETIME = '20211208'; SELECT EOMONTH ( @date ) AS Result; GO
着力:
添加偏移参数month_to_add
举例复返下月的临了一天:
DECLARE @date DATETIME = '20211208'; SELECT EOMONTH ( @date,1 ) AS Result; GO
着力:
作用
要是抒发式是有用的 date、time、或 datetime 值,则复返 1;不然复返 0 。
要是抒发式为 datetime2 值,则 ISDATE 复返 0 。
语法
ISDATE ( expression )
示例
判断今天(2021-12-08)是否为正当日历
IF ISDATE('2021-12-08') = 1 SELECT '正当日历' Result ELSE SELECT '别离法日历' Result;
着力:
成心思的同学可以尝试判断'2022-02-30'是否正当。
实战专揽1、本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) --2021-12-01 00:00:00.000
2、本周星期一
亚博骰宝SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0) --2021-12-06 00:00:00.000
3、本年第一天
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) --2021-01-01 00:00:00.000
4、下个季度第一天
SELECT DATEADD(qq,DATEDIFF(qq,-1,getdate()),0) --2021-01-01 00:00:00.000
5、上个月临了一天
SELECT DATEADD(dd,-DAY(getdate()),getdate()) --2021-11-30 20:14:21.850
6、本年临了一天
SELECT DATEADD(year,DATEDIFF(year,0,DATEADD(year,1,getdate())),-1) --2021-12-31 00:00:00.000
7、前年统一天
SELECT DATEADD(YEAR,-1,GETDATE()) --2020-12-08 20:19:05.987
以上即是今天要给大众先容的高档日历函数,合计可以,铭记转发共享给更多东说念主,谢谢啦~