随笔 - 410  文章 - 0  评论 - 519  阅读 - 148万 

这篇文章要总结的是SQL在日期和时间处理方面的函数,总结起来,主要有以下这些函数在我们的开发过程中使用得比较多的。

1,获取当前系统时间

2,DATEADD函数

3,DATEDIFF函数

4,DATEPART函数

5,YEAR,MONTH和DAY函数

6,DATENAME函数

7,ISDATE函数

获取当前系统时间

获取当前系统时间的函数有很多,但是最常用就两个,CURRENT_TIMESTAMP和GETDATE。它们返回的日期和时间格式完全相同,但是因为CURRENT_TIMESTAMP是标准SQL,所以更推荐使用它。

SQL查询代码:

SELECT GETDATE() AS [GETDATE], CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP];

查询结果:

image

我们可以看到,它们返回的日期时间完全相同。

DATEADD函数

DATEADD函数可以将指定日期的部分作为单位,为输入的日期和时间值增指定的数量。它的语法形式为:DATEADD(part,n,dt_val)

例如,以下代码为“2014年7月26日”增加1年。

SELECT DATEADD(YEAR,1,'20140726');

查询结果:

image

DATEDIFF函数

DATEDIFF函数返回两个日期和时间之间相差的指定部分的计数。它的语法形式:DATEDIFF(part,dt_val1,dt_val2)

例如,以下代码返回两个值之间相差的天数。

SELECT DATEDIFF(DAY,'20130726','20140726');

查询结果:

image

我们可以看到,它们相关了365天。

DATEPART函数

DATEPART函数返回一个表示给定日期和时间值的指定部分的整数。语法:DATEPART(part,dt_val)

例如,以下代码返回输入值的月份部分。

SELECT DATEPART(MONTH,'20140726');

查询结果:

image

代码返回的当前日期的月份是7月。

YEAR,MONTH和DAY函数

YEAR,MONTH和DAY函数是DATEPART函数的简略版本。它们分别返回一个代表输入日期和时间值中年,月,日部分的整数。语法:YEAR(dt_val),MONTH(dt_val),DAY(dt_val)

例如,以下代码提取输入值的年,月,日部分。

复制代码
USE TSQLFundamentals2008;
GO

SELECT
    YEAR('20140726') AS theyear,
    MONTH('20140726') AS themonth,
    DAY('20140726') AS theday;
复制代码

查询结果:

image

DATENAME函数

DATENAME函数返回一个给定日期和时间值的指定部分的字符串。语法为:DATENAME(part,dt_val)

例如,以下代码返回给定输入日期和时间值的月份名称字符串。

SELECT DATENAME(MONTH,'20140726');

查询结果:

image

ISDATE函数

ISDATE函数接受一个字符串作为输入,如果能把这个字符串转换为日期和时间数据类型的值,则返回1,如果不能,则返回0。它的语法:ISDATE(string)

例如,以下代码返回1:

以下代码则返回0:

复制代码
USE TSQLFundamentals2008;
GO

-- 返回1,可以正常转换
SELECT ISDATE('20090212');

-- 返回0,因为2月没有30,所以转换失败
SELECT ISDATE('20090230');
复制代码

查询结果:

image

1和0可以很好地转换成C#里的true和false。

posted on   永远的麦子  阅读(966)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示