【发布时间】:2014-11-17 11:07:40
【问题描述】:
我使用的是 SQL Server 2012 Express。数据库有一个表 [config],其成员类型为“datetime”。由 Management Studio 将其导出(仅数据)作为 SQL 脚本生成:
插入 [dbo].[config] ([id], [name], [creation_date], ... ) VALUES (13, N'Test', CAST(N'2014-11-17 09:29: 07.047' AS DateTime), ...)
现在在执行生成的脚本时,它会抱怨 datetime 类型的值无效。我可以通过用“T”替换日期和时间之间的空白来手动修复它:
插入 [dbo].[config] ([id], [name], [creation_date], ... ) 值 (13, N'Test', CAST(N'2014-11-17T 09:29:07.047' AS DateTime), ...)
查看日期时间的文档,似乎不支持使用空白的格式。
如何生成具有受支持的日期时间格式(即包括“T”)的脚本?
如何在不更改导入脚本的情况下导入使用空白的格式?
顺便说一句,它看起来适用于其他 SQL Server 安装,但我找不到区别。卸载并重新安装 SQL Server 也无济于事。
【问题讨论】:
-
接受哪些类型的日期时间格式由服务器上 Windows 中的区域设置控制。也许其他 SQL Server 安装(在其他服务器上)具有其他区域设置。
-
这已在 SQL Server 2014 中修复,但对于 SQL Server 2012,您将需要 Mikael 建议的行
-
Adam Marshall:我测试了 sql 2014 (v12) 程序集,但它没有在 Smo Scripter 中修复。那里的格式仍然很糟糕。奇怪的是他们只在管理工作室修复它:-|
标签: sql-server datetime iso8601