[[439449]]
本文转载自微信公众号「SQL数据库设备」,作家丶泛泛宇宙 AG体育 。转载本文请联系SQL数据库设备公众号。
平常咱们在打算工夫或推算日历时王人会用到一些日历函数,大多王人是些相比常见的,比如YEAR(),MONTH(),DATEADD()等等,今天给寰球素养一些相比高等的日历函数。
测试环境SQL Server 2017
&DATEFIRST作用
针对特定会话,此函数复返 SET DATEFIRST 确现时值。
皇冠客服飞机:@seo3687宝马会百家乐语法
&DATEFIRST
邃密:
皇冠appSET DATEFIRST n 指定一周的第一天(日曜日、星期一、星期二等) 。 n 值的范畴为 1 到 7 。
示例
本期业绩预盈的主要原因1、上半年受益于行业恢复、旅客出行需求增加,公司营业利润扭亏为盈;2、虽二季度营业利润较一季度环比改善,但受二季度人民币汇率贬值影响,二季度财务费用相应增加,因此二季度净利润仍然为负。
比如咱们指定星期天为每周第一天,那么今天(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');
成果:
DATEDIFF作用
复返指定的 startdate 和 enddate 之间所跨的指定 datepart 范畴的计数(行动带秀丽整数值) 。
语法
博彩平台游戏积分DATEDIFF ( datepart , startdate , enddate )
邃密:复返值为startdate 与 enddate 之间的 int 各别,以 datepart 建立的范畴示意 。
示例
打算旧年第一天到今天之间有几许天
SELECT DATEDIFF(DAY,'20200101','20211208')
成果:
DATEFROMPARTS作用
此函数复返映射到指定年、月、日值的 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;
成果
DATENAME作用
复返示意指定 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作用
皇冠hg86a
复返包含指定日历场地月份的临了一天(具有可选偏移量)
语法
EOMONTH ( start_date [, month_to_add ] )
示例
泄露本月的临了一天
--界说一个日历类型的变量,而况给它赋值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
成果:
ISDATE作用
如若抒发式是灵验的 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
以上便是今天要给寰球先容的高等日历函数,以为可以,紧记转发共享给更多东说念主,谢谢啦~