通过tsql解析datetime

通过tsql解析datetime,tsql,Tsql,更新列表 设置日期=“2009-07-21T19:00:40” sql server无法识别此格式。有转换功能吗?试试这个: UPDATE List SET Date = '2009/07/21 19:00:40' 你可以用。但在转换之前,可能必须用空格替换“T”。(还有一些字符串操作函数可用。)对我来说效果很好(SQL Express 2005),除了双引号(SQL Server假定双引号是一个列分隔符);这就是造成错误的原因吗?谢谢你的示例代码,但是你能产生实际的错误吗 换句话说, 声明@

更新列表 设置日期=“2009-07-21T19:00:40”

sql server无法识别此格式。有转换功能吗?试试这个:

UPDATE List SET Date = '2009/07/21 19:00:40'
你可以用。但在转换之前,可能必须用空格替换“T”。(还有一些字符串操作函数可用。)

对我来说效果很好(SQL Express 2005),除了双引号(SQL Server假定双引号是一个列分隔符);这就是造成错误的原因吗?谢谢你的示例代码,但是你能产生实际的错误吗

换句话说,

声明@List表([date]DATETIME) )

插入@List 选择GETUTCDATE()

更新@列表设置日期= “2009-07-21T19:00:40”

产生

味精207,16级,状态1,第7行 无效的列名 “2009-07-21T19:00:40”

鉴于

声明@List表([date]DATETIME) )

插入@List 选择GETUTCDATE()

更新@列表设置日期= “2009-07-21T19:00:40”

成功运行。

甚至对我也有用(2005和2008)

然而,只要试一下

像这样的

**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

不用说,您不应该对对象名称使用保留字。
**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