sql - 在 SQL Server 中格式化 Datetime2
问题描述
我正在尝试将 a 格式化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
为 a datetime2
,这就是您收到此错误的原因(您没有提供)
不允许从数据类型 int 到 datetime2 的显式转换。
要CONVERT()
与日期和时间样式一起使用,您需要通过
CONVERT(<datatype to convert to>, <Value to be converted>, <Style>)
.
SYSUTCDATETIME
返回 adatetime2
您可以转换为
SELECT CONVERT(VARCHAR(20), SYSUTCDATETIME(), 120)
--Change SYSUTCDATETIME() with your column/variable
对于你所说的
但我需要类型的输出
datetime2
ADATETIME
没有格式,它是二进制值,因此您需要将其转换为格式化字符串。由于您需要返回 aDATETIME2
那么您需要保持原样,并在表示层中进行格式化。
推荐阅读
- jenkins - SonarQube 构建断路器和 Jenkins 质量门不一样
- kotlin - 类中的对象与伴随对象
- javascript - 使用递归展平数组内的数组
- javascript - 当光标不在材料cdk拖放中的放置区域时删除放置区域的占位符
- db2 - DB2 将大型物理表与小型全局临时表连接起来
- android - 在嵌套滚动视图中使用分页库时会加载所有数据
- android - 使用 MVVM 在 Android 中验证权限的优雅方式
- r - 根据 R 中数据框中的列展开数据框
- c# - Webapi AuthorizeAttribute 不允许我在将状态消息设为 200 时访问方法
- c# - 如何将数据库连接到我的桌面应用程序,而两者都放置在不同的系统中?