首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL_VARIANT和DATETIME2

SQL_VARIANT和DATETIME2
EN

Stack Overflow用户
提问于 2019-11-26 03:51:26
回答 1查看 142关注 0票数 1

假设您有下表:

代码语言:javascript
复制
CREATE TABLE [dbo].[Test]
(
    [Value] [sql_variant] NOT NULL
)

让我们插入一些DATETIME2值:

代码语言:javascript
复制
INSERT INTO [dbo].[Test]
(
    [Value]
)
VALUES
(
    SYSUTCDATETIME()
)

现在,让我们看看结果:

代码语言:javascript
复制
SELECT
    [Value],
    SQL_VARIANT_PROPERTY([Value], 'BaseType') AS BaseType
FROM
    [dbo].[Test]


Value                     BaseType
-----------------------------------
2019-11-25 19:39:43.274   datetime2
2019-11-25 19:43:49.735   datetime2

为什么值会被截断?

EN

回答 1

Stack Overflow用户

发布于 2019-11-26 03:54:58

在使用sql_variant时,您需要具体说明希望返回的数据类型;否则SQL Server将推断出显示格式。然而,数据并没有被截断。例如,如果您尝试执行以下操作,您将看到Value_DT2的结果为datetime2(7)

代码语言:javascript
复制
SELECT [Value],
       CONVERT(datetime2,[Value]) AS Value_DT2,
       SQL_VARIANT_PROPERTY([Value], 'BaseType') AS BaseType
FROM [dbo].[Test];
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59039145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档