月从SQL Server中截取日期的年月

如何从SQL Server中截取日期的年月

了解SQL Server中日期数据类型

在SQL Server数据库中,日期数据类型是一种常用的数据类型。常见的日期数据类型有以下几种:

datetime

datetime2

date

time

其中,datetime数据类型保存日期和时间信息,date数据类型保存日期信息,time数据类型保存时间信息。不同的日期数据类型存储日期格式也有所不同。

使用YEAR()函数截取年份

要从日期中截取年月信息,可以使用YEAR()和MONTH()函数。YEAR()函数可以得到日期的年份,语法如下:

YEAR(date)

其中,date是指日期类型的参数。下面的例子展示了如何使用YEAR()函数从datetime类型的数据中截取年份信息:

SELECT YEAR('2022-01-01 12:30:00.000')

此语句将返回2022作为结果。如果要从date类型的数据中截取年份信息,可以使用如下语句:

SELECT YEAR('2022-01-01')

上面的语句将返回2022。

使用MONTH()函数截取月份

类似于YEAR()函数,MONTH()函数可以用于截取日期中的月份信息。MONTH()函数的语法为:

MONTH(date)

其中,date是一个日期类型的参数。下面的例子展示了如何使用MONTH()函数从datetime类型的数据中截取月份信息:

SELECT MONTH('2022-01-01 12:30:00.000')

此语句将返回1作为结果。如果要从date类型的数据中截取月份信息,可以使用如下语句:

SELECT MONTH('2022-01-01')

这个语句将返回1。

使用CONVERT()和FORMAT()函数格式化日期信息

如果想要将日期信息转换成指定格式,可以使用CONVERT()和FORMAT()函数。CONVERT()函数可以将日期类型的数据转换成指定格式的字符串。其基本语法如下:

CONVERT(datatype,length,date,style)

其中,datatype是表示转换后字符串的数据类型,length表示字符串的长度,date表示需要转换的日期数据,style表示日期转换后的格式。下面的例子展示了如何使用CONVERT()函数将datetime类型的日期转换成yyyy-MM格式的字符串:

SELECT CONVERT(varchar(7),'2022-01-01 12:30:00.000',23)

这个语句将返回字符串'2022-01'作为结果。

在SQL Server 2012及以上版本中,可以使用FORMAT()函数对日期进行格式化。其基本语法如下:

FORMAT(date,format)

其中,date是日期类型的数据,format表示日期格式。下面的例子展示了如何使用FORMAT()函数将datetime类型的日期格式化为yyyy-MM格式:

SELECT FORMAT('2022-01-01 12:30:00.000','yyyy-MM')

这个语句将返回'2022-01'作为结果。

总结

本文介绍了如何在SQL Server中截取日期的年月信息,主要通过YEAR()和MONTH()函数实现。此外,本文还介绍了如何使用CONVERT()和FORMAT()函数格式化日期信息。掌握了这些方法,可以方便地从日期数据中截取出需要的信息。

数据库标签