如何在SQL Server 2008中设置DateTime变量?

Bob*_*Bob 28 sql datetime

SQL Server 2008没有达到我的预期DateTime.DateTime无论我使用什么日期格式,它都不允许我设置变量.

当我执行:

DECLARE @Test AS DATETIME
SET @Test = 2011-02-15
PRINT @Test
Run Code Online (Sandbox Code Playgroud)

我得到一个输出:

Jun 18 1905 12:00AM
Run Code Online (Sandbox Code Playgroud)

我已经检查了所有可以找到的区域设置,这一切看起来都没问题.我也试过设置DateTime各种文字替代品,例如'15/02/2011','2011-02-15 00:00:00'等.

Dav*_*ead 35

您需要将日期时间值括在引号中:

DECLARE @Test AS DATETIME 

SET @Test = '2011-02-15'

PRINT @Test
Run Code Online (Sandbox Code Playgroud)

  • 如果您发布代码、XML 或数据示例,**请** 在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(`{}`)以很好地格式化和语法突出显示它! (2认同)

mar*_*c_s 15

首先 - 在日期文字周围使用单引号!

其次,我强烈建议始终使用ISO-8601日期格式 - 无论您的SQL Server上的区域设置,区域或语言设置如何,这都可以使用.

ISO-8601格式可以是:

  • YYYYMMDD仅限日期(例如201108252011年8月25日)
  • YYYY-MM-DDTHH:MM:SS日期和时间(例如2011-08-25T14:15:00,AUgust的25日,下午14:15/2:15)


Mat*_*lie 6

2011-01-15= 2011-16= 1995.然后将其从一个整数隐式转换为一个日期,从1900年1月1日开始,给你第1995天.

你需要使用 SET @test = '2011-02-15'


小智 6

尝试使用选择而不是打印

DECLARE @Test AS DATETIME 

SET @Test = '2011-02-15'

Select @Test
Run Code Online (Sandbox Code Playgroud)