介绍
MSSQL中有很多实用的函数,其中Date Functions就是在管理日期和时间数据时应用最广泛的函数之一。 分析数据时,强制使用某些日期或时间(或两者)仅仅是数据的一部分,因此很容易将这些数据的“一部分”与其余数据隔离开来,从而成为不同情况的基础。 在这篇文章中,我们将讨论如何使用“截取函数”(SUBSTRING)来提取日期的日、月和年部分。
什么是SUBSTRING函数
SUBSTRING函数是MSSQL中的字符串函数之一,它可以从一个字符串中返回由指定位置开始的一段子字符串。
SUBSTRING函数的语法
SUBSTRING ( string_expression, start, length )
string_expression:输入字符串表达式。
start:输入的起始位置。
length:要返回的字符数。
截取日期
拥有日期并不仅仅意味着可以知道“今天是几号”或“明天是几号”,这是非常重要的。 日期可以分为年、月、日、小时、分钟和秒等各种单位。 我们可以根据特定日期部分来过滤和处理数据,并根据情况进行分析。 使用SUBSTRING函数可以轻松地从日期数据中提取日、月和年,并根据数据分析的需求进行相应的调整。
提取日期的年份
在下面的示例中,我们将使用SELECT语句显式地提取一个日期的年份。 对于从使用的表中检索到的每行,以下代码将以YYYY格式显示“OrderDate”列中的年份部分。
SELECT SUBSTRING(CONVERT(NVARCHAR, OrderDate, 120), 1, 4) AS 'Year'
FROM Sales.OrderDate;
在上面的例子中,我们使用了CONVERT函数将“OrderDate”列转换为指定格式的字符串,并使用SUBSTRING函数选择字符串的前4个字符。
提取日期的月份
与提取年份类似,提取月份也可以使用SUBSTRING函数。 在以下示例中,我们提取“OrderDate”列中每个日期的月份部分。
SELECT SUBSTRING(CONVERT(NVARCHAR, OrderDate, 120), 6, 2) AS 'Month'
FROM Sales.OrderDate;
在上述示例中,对于“OrderDate”列中的每个日期,SUBSTRING函数从转换后的字符串中选择了第6个和第7个字符(月份分别从“07”和“01”以示例顺序开始验明)。
提取日期的日期部分
最后,我们将提取日期的日期部分。 在以下示例中,我们选择了“OrderDate”列中日期的日期部分。
SELECT SUBSTRING(CONVERT(NVARCHAR, OrderDate, 120), 9, 2) AS 'Day'
FROM Sales.OrderDate;
在上述代码中,SUBSTRING函数从转换后的字符串中选择了第9个和第10个字符,这分别是“OrderDate”列中日期的日期部分(日份从“14”开始)。
结论
在MSSQL中使用DATE和SUBSTRING函数可以轻松地从日期/时间数据中提取指定的日期或时间部分,并根据需要对其进行分析。 在这篇文章中,我们使用了SUBSTRING函数来提取日期数据的年、月和日,并且解释了每个函数调用的工作方式。