繁体   English   中英

在SQL Server中格式化Datetime2

[英]Formatting Datetime2 in SQL Server

我正在尝试将datetime2格式化为yyyy-mm-dd hh:mm:ss格式。

我尝试了以下选项:

这引发了一个错误:

SELECT CONVERT(datetime2, 120); 

这工作正常,但我需要类型为datetime2的输出

SELECT CONVERT(VARCHAR(19), GETDATE(), 120);

我该如何实现?

您在调用CONVERT()函数时未指定要转换为的数据类型,因此在您的情况下为SELECT CONVERT(datetime2, 120); SQL Server将尝试将值120转换为datetime2 ,这就是为什么会出现此错误(您未提供)的原因

不允许从int数据类型到datetime2的显式转换。

要将CONVERT()与日期和时间样式一起使用,您需要传递

CONVERT(<datatype to convert to>, <Value to be converted>, <Style>)

SYSUTCDATETIME返回一个datetime2您可以将其转换为

SELECT CONVERT(VARCHAR(20), SYSUTCDATETIME(), 120)
--Change SYSUTCDATETIME() with your column/variable

对于你说的

但是我需要类型为datetime2的输出

DATETIME没有格式,它是一个二进制值,因此您需要将其转换为格式化的字符串。 由于您需要返回DATETIME2因此您需要保持原样,并在表示层中进行格式化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM