您的位置:

SQL Server格式化日期

一、基本概念

在SQL Server中,日期可以存储为datetime、smalldatetime、date、time和datetime2等数据类型。日期格式化是指将日期转换为一定格式的字符串。

在格式化日期时,可以使用多种函数,如CONVERT、CAST、FORMAT等。其中,CONVERT是最常用的日期转换函数。

二、CONVERT函数

CONVERT函数可以将一个数据类型的值转换为另一个数据类型的值。常见的转换包括将日期转换为字符型、将数字转换为字符型等。以下是将日期格式化为不同格式的示例:

-- 将日期格式化为yyyy-MM-dd格式
SELECT CONVERT(varchar(10), GETDATE(), 120)

-- 将日期格式化为yyyy/MM/dd格式
SELECT CONVERT(varchar(10), GETDATE(), 111)

-- 将日期格式化为MM/dd/yyyy格式
SELECT CONVERT(varchar(10), GETDATE(), 101)

-- 将日期格式化为yyyy/MM/dd hh:mm:ss格式
SELECT CONVERT(varchar(19), GETDATE(), 120)

三、FORMAT函数

FORMAT函数是SQL Server 2012新增的一个日期格式化函数,在使用时需要注意以下几点:

1.第一个参数是待格式化的日期;

2.第二个参数是格式化字符串,格式化字符串中使用大写字母H、h表示小时,大小写有区别;

3.格式化字符串可以使用自定义格式,如yyyy-MM-dd hh:mm:ss等。

以下是使用FORMAT函数将日期格式化为不同格式的示例:

-- 将日期格式化为yyyy-MM-dd格式
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')

-- 将日期格式化为yyyy/MM/dd格式
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd')

-- 将日期格式化为MM/dd/yyyy格式
SELECT FORMAT(GETDATE(), 'MM/dd/yyyy')

-- 将日期格式化为yyyy/MM/dd hh:mm:ss格式
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd H:mm:ss')

四、DATENAME函数

DATENAME函数返回日期的某个部分,如年份、月份、日等。以下是使用DATENAME函数获取日期某个部分的示例:

-- 获取当前日期的年份
SELECT DATENAME(year, GETDATE())

-- 获取当前日期的月份
SELECT DATENAME(month, GETDATE())

-- 获取当前日期的日
SELECT DATENAME(day, GETDATE())

五、DATEPART函数

DATEPART函数也可以返回日期的某个部分,其语法与DATENAME函数类似。以下是使用DATEPART函数获取日期某个部分的示例:

-- 获取当前日期的年份
SELECT DATEPART(year, GETDATE())

-- 获取当前日期的月份
SELECT DATEPART(month, GETDATE())

-- 获取当前日期的日
SELECT DATEPART(day, GETDATE())

六、总结

在SQL Server中,可以使用CONVERT、FORMAT、DATENAME和DATEPART等函数将日期格式化为不同的字符串,以便更好地展示日期信息。在使用这些函数时,需要注意使用合适的数据类型、格式化字符串和日期部分参数。