SQL Server日期格式化

日期格式化在数据库中是一个常见的操作,特别是在需要显示或使用特定日期格式的情况下。SQL Server提供了多种函数和格式选项,用于对日期和时间进行格式化。本文将介绍常用的日期格式化函数,并提供相应的代码示例。

1. 日期格式化函数

SQL Server提供了几个日期格式化函数,可以根据需要选择合适的函数来格式化日期。

1.1. DATEPART函数

DATEPART函数可以用于从日期中提取指定的日期部分,如年、月、日、小时、分钟、秒等。以下是使用DATEPART函数提取日期部分的示例代码:

SELECT DATEPART(year, GETDATE()) AS 'Year',
       DATEPART(month, GETDATE()) AS 'Month',
       DATEPART(day, GETDATE()) AS 'Day',
       DATEPART(hour, GETDATE()) AS 'Hour',
       DATEPART(minute, GETDATE()) AS 'Minute',
       DATEPART(second, GETDATE()) AS 'Second'

1.2. CONVERT函数

CONVERT函数用于将日期和时间从一种数据类型转换为另一种数据类型,并可以指定输出的格式。以下是使用CONVERT函数进行日期格式化的示例代码:

SELECT CONVERT(varchar, GETDATE(), 101) AS 'MM/DD/YYYY',
       CONVERT(varchar, GETDATE(), 102) AS 'YYYY.MM.DD',
       CONVERT(varchar, GETDATE(), 103) AS 'DD/MM/YYYY',
       CONVERT(varchar, GETDATE(), 104) AS 'DD.MM.YYYY',
       CONVERT(varchar, GETDATE(), 105) AS 'DD-MM-YYYY',
       CONVERT(varchar, GETDATE(), 106) AS 'DD MMM YYYY',
       CONVERT(varchar, GETDATE(), 107) AS 'MMM DD, YYYY'

1.3. FORMAT函数

FORMAT函数是SQL Server 2012及更高版本中引入的函数,它可以根据自定义的格式字符串对日期进行格式化。以下是使用FORMAT函数进行日期格式化的示例代码:

SELECT FORMAT(GETDATE(), 'MM/dd/yyyy') AS 'MM/DD/YYYY',
       FORMAT(GETDATE(), 'yyyy.MM.dd') AS 'YYYY.MM.DD',
       FORMAT(GETDATE(), 'dd/MM/yyyy') AS 'DD/MM/YYYY',
       FORMAT(GETDATE(), 'dd.MM.yyyy') AS 'DD.MM.YYYY',
       FORMAT(GETDATE(), 'dd-MM-yyyy') AS 'DD-MM-YYYY',
       FORMAT(GETDATE(), 'dd MMM yyyy') AS 'DD MMM YYYY',
       FORMAT(GETDATE(), 'MMM dd, yyyy') AS 'MMM DD, YYYY'

2. 日期格式化示例

下面是一个完整的示例,演示如何使用SQL Server的日期格式化函数将日期和时间格式化为不同的格式:

-- 创建一个测试表
CREATE TABLE TestTable
(
    ID INT PRIMARY KEY,
    DateColumn DATETIME
)

-- 插入一些测试数据
INSERT INTO TestTable VALUES (1, GETDATE())
INSERT INTO TestTable VALUES (2, '2022-01-01 12:34:56')
INSERT INTO TestTable VALUES (3, '2022-02-02 23:59:59')

-- 查询并格式化日期
SELECT ID, 
       CONVERT(varchar, DateColumn, 101) AS 'MM/DD/YYYY',
       CONVERT(varchar, DateColumn, 102) AS 'YYYY.MM.DD',
       CONVERT(varchar, DateColumn, 103) AS 'DD/MM/YYYY',
       CONVERT(varchar, DateColumn, 104) AS 'DD.MM.YYYY',
       CONVERT(varchar, DateColumn, 105) AS 'DD-MM-YYYY',
       CONVERT(varchar, DateColumn, 106) AS 'DD MMM YYYY',
       CONVERT(varchar, DateColumn, 107) AS 'MMM DD, YYYY'
FROM TestTable

运行上述代码后,将会得到一张包含格式化日期的结果表格。

3. 总结

日期格式化在SQL Server中是一个常见的操作,可以使用DATEPARTCONVERTFORMAT等函数来将日期和时间格式化为不同的格式。在选择日期格式化函数时,需要根据实际需求和SQL Server版本来确定使用哪个函数。

希望本文对您理解SQL Server日期格式化有所帮助!

参考资料

  • [SQL Server DATEPART() Function](
  • [SQL Server CONVERT() Function](
  • [SQL Server FORMAT()