使用SQL Server进行日期和时间转换

问题

在很多情况下,日期和时间没有以您想要的格式显示在您的家门口,查询的输出也不符合查看该查询的人们的需求。一种选择是格式化应用程序本身中的数据。另一个选择是使用SQL Server提供的内置功能来格式化日期字符串。

SQL Server提供了许多选项,可用于格式化日期/时间字符串。首先要考虑的因素是实际所需的日期/时间。最常见的是使用getdate()的当前日期/时间这将根据提供日期和时间的服务器来提供当前日期和时间。如果需要通用日期/时间,则应使用getutcdate()要更改日期格式,可以将请求的日期转换为字符串,然后指定与所需格式相对应的格式编号。

如何获取不同的SQL Server日期格式

  1. 将日期格式选项与CONVERT函数一起使用
  2. 要获取YYYY-MM-DD,请使用SELECT CONVERT(varchar,getdate(),23)
  3. 要获取MM / DD / YYYY,请使用SELECT CONVERT(varchar,getdate(),1)
  4. 查看图表以获取所有格式选项的列表

以下是格式列表和输出示例。所有这些示例使用的日期为“ 2006-12-30 00:38:54.840”。

 

 

 您还可以设置日期或时间的格式,而不用分割字符,以及连接日期和时间字符串:

 

 如果要获取所有有效日期和时间格式的列表,则可以使用下面的代码,并将@date更改为GETDATE()或要使用的任何其他日期。这将仅输出有效格式。

DECLARE @counter INT = 0
DECLARE @date DATETIME = '2006-12-30 00:38:54.840'

CREATE TABLE #dateFormats (dateFormatOption int, dateOutput nvarchar(40))

WHILE (@counter <= 150 )
BEGIN
   BEGIN TRY
      INSERT INTO #dateFormats
      SELECT CONVERT(nvarchar, @counter), CONVERT(nvarchar,@date, @counter) 
      SET @counter = @counter + 1
   END TRY
   BEGIN CATCH;
      SET @counter = @counter + 1
      IF @counter >= 150
      BEGIN
         BREAK
      END
   END CATCH
END

SELECT * FROM #dateFormats

 

 
posted @ 2020-07-14 09:29  Javi  阅读(699)  评论(0编辑  收藏  举报