SQL Server datetime 格式化

SQL Server datetime 格式化

SQL Server datetime 格式化

SQL Server 中,我们经常需要在数据库中存储日期和时间的信息,比如订单创建时间、用户注册时间等。而存储日期和时间的数据类型主要包括 datetime、date、time 等。在将日期和时间信息存储到数据库中后,有时候我们需要对这些信息进行格式化,以便更好地展示或者进行计算。本文将详细介绍在 SQL Server 中如何对 datetime 类型的数据进行格式化。

datetime 数据类型简介

在 SQL Server 中,datetime 类型用于存储日期和时间信息。它的精度可以精确到1/300秒,具体格式为 YYYY-MM-DD HH:MI:SS

下面是一个创建一个包含 datetime 类型的表的示例:

CREATE TABLE Orders (
    OrderID int,
    OrderDate datetime
);

格式化日期和时间

使用 CONVERT 函数

在 SQL Server 中,我们可以使用 CONVERT 函数来对 datetime 数据类型进行格式化。 CONVERT 函数的语法如下:

CONVERT(data_type, expression [, style]);

其中,data_type 指定了目标转换的数据类型,可以是 date、time 或 datetime2 等;expression 是待转换的表达式;style 是用来指定输出格式的参数。在这里我们主要关注 style 参数。

style 参数是用来指定输出格式的,不同的 style 值会得到不同的日期和时间格式。比如,style 为 1 时,表示输出格式为 MM/DD/YY;style 为 101 时,表示输出格式为 MM/DD/YYYY

下面列举了一些常用的 style 值及其对应的日期时间格式:

  • 101: MM/DD/YYYY
  • 102: YYYY.MM.DD
  • 103: DD/MM/YYYY
  • 104: DD.MM.YYYY
  • 105: DD-MM-YYYY
  • 106: DD MMM YYYY
  • 107: MMM-DD-YYYY

我们可以通过将 style 参数传递给 CONVERT 函数来对日期和时间进行格式化。下面是一个示例:

SELECT CONVERT(varchar, GETDATE(), 101) AS FormattedDate;

上面的示例中,GETDATE() 函数返回当前的日期和时间,CONVERT 函数将其按照 style 101 格式化为 MM/DD/YYYY 的形式。

使用 FORMAT 函数

除了 CONVERT 函数外,SQL Server 2012 及更高版本还引入了 FORMAT 函数,用于对日期和时间进行格式化。FORMAT 函数的语法如下:

FORMAT (value, format [, culture])

其中,value 是待格式化的值,可以是日期、时间等;format 是输出的格式字符串;culture 是用来指定区域设置的 (可选参数)。

FORMAT 函数的 format 参数是一个格式字符串,它类似于 C# 中的日期格式化字符串。比如,yyyy-MM-dd 表示年-月-日,MMMM dd, yyyy 表示月份名称+日期+年份等。

下面是一个使用 FORMAT 函数格式化日期的示例:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate;

上面的示例中,GETDATE() 函数返回当前的日期和时间,FORMAT 函数将其按照 yyyy-MM-dd 的格式进行格式化。

示例

使用 CONVERT 函数格式化日期

下面是一个使用 CONVERT 函数格式化日期的示例:

SELECT 
    OrderID, 
    CONVERT(varchar, OrderDate, 101) AS FormattedOrderDate
FROM Orders;

假设 Orders 表的数据如下:

| OrderID | OrderDate          |
|---------|--------------------|
| 1       | 2022-01-15 09:30:00|
| 2       | 2022-02-20 15:45:00|

查询结果会按照 style 101 的格式返回格式化后的日期:

| OrderID | FormattedOrderDate |
|---------|--------------------|
| 1       | 01/15/2022         |
| 2       | 02/20/2022         |

使用 FORMAT 函数格式化日期

下面是一个使用 FORMAT 函数格式化日期的示例:

SELECT 
    OrderID, 
    FORMAT(OrderDate, 'MMMM dd, yyyy') AS FormattedOrderDate
FROM Orders;

查询结果会按照 MMMM dd, yyyy 的格式返回格式化后的日期:

| OrderID | FormattedOrderDate |
|---------|--------------------|
| 1       | January 15, 2022   |
| 2       | February 20, 2022   |

总结

本文介绍了在 SQL Server 中如何对 datetime 类型的数据进行格式化,主要介绍了使用 CONVERT 函数和 FORMAT 函数两种方法。通过对日期和时间进行合适的格式化,可以更好地展示这些信息,方便阅读和使用。在实际应用中,根据需要选择合适的格式化函数和参数,以满足业务需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

SQLServer 问答