2009-11-08 180 views
1

更新列表 设置日期= “2009-07-21T19:00:40”解析器日期时间

SQL Server不能识别这种格式。有没有转换功能

+0

你得到任何错误了一枪? – 2009-11-09 05:09:50

回答

0

试试这个:

UPDATE List SET Date = '2009/07/21 19:00:40' 
+0

不用说,你不应该使用保留字来表示对象名称。 – 2009-11-08 21:47:51

+0

导入数据,无法更改原始格式 – scrippie 2009-11-08 21:50:59

+0

只是用DATEFORMAT COMMAND给出一个镜头..它可能工作 – 2009-11-09 05:11:57

1

您可以使用CAST and CONVERT。但是,也许你必须用空格替换'T',然后才能转换它。 (也有可用的字符串操作函数。)

1

除了双引号(SQL Server假设为列分隔符)之外,对我来说工作得很好(SQL Express 2005);那是什么引发了这个错误?感谢您的示例代码,但是您能否产生实际的错误?

换句话说,

DECLARE @list TABLE([日期] DATETIME )

INSERT INTO @list SELECT GETUTCDATE()

UPDATE SET @list日期= “ 2009-07-21T19:00:40“

产生

Msg 207,Level 16,State 1,Line 7 列名无效 '2009-07-21T19:00:40'。

鉴于

DECLARE @list TABLE([日期] DATETIME )

INSERT INTO @list SELECT GETUTCDATE()

UPDATE SET @list日期= “2009 -07-21T19:00:40'

成功运行。

0

即使工作对我来说太(2005 & 2008)..

DECLARE @tbl TABLE ([date] DATETIME) 
INSERT INTO @tbl SELECT getdate() 
select * from @tbl 

UPDATE @tbl SET Date = '2009-07-21T19:00:40' 
select * from @tbl 

然而,就给人以DATEFORMAT COMMAND

像这样的事情

**SET DATEFORMAT dmy** 

DECLARE @tbl TABLE ([date] DATETIME) 
INSERT INTO @tbl SELECT getdate() 
select * from @tbl 

UPDATE @tbl SET Date = '2009-07-21T19:00:40' 
select * from @tbl