为什么Print和Select返回的结果不一样

Shuang 160 信誉分
2024-12-24T06:30:18.04+00:00

正在尝试写一个存储过程,但是发现一个问题如下:

DECLARE @Year INT;
DECLARE @Month INT;
DECLARE @DATE DATETIME;
SET @Year = 2024;
SET @Month = 12;
SET @DATE = FORMAT(DATEFROMPARTS(@Year, @Month, 1), 'yyyy-MM-ddTHH:mm:ss.fff');
PRINT @DATE;
SELECT @DATE;

Print的结果是12 1 2024 12:00AM ,而Select的结果是我想要的格式2024-12-01 00:00:00.000

我是觉得两者返回的结果应该是一样的才对,为什么会出现不同呢?还是说是出现bug了吗?

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
189 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. LiHongMSFT-4306 29,746 信誉分
    2024-12-24T07:02:51.6366667+00:00

    你好,

    为什么会出现不同呢?

    Print输出的结果是字符串或 Unicode 字符串常量,所以当你的变量类型是DTAETIME时,将转化成文本类型显示出来。

    你可以试试将@DATE定义为varchar类型,这样子的话两者就会返回一样的值了。


    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。