在 SQL CE 4.0 中将 nvarchar(50) 列转换为日期时间

Posted

技术标签:

【中文标题】在 SQL CE 4.0 中将 nvarchar(50) 列转换为日期时间【英文标题】:Converting nvarchar(50) column to datetime in SQL CE 4.0 【发布时间】:2014-02-06 17:50:52 【问题描述】:

我是 SQL 新手,并且继承了一个使用 nvarchar(50) 作为“日期”列的数据类型的数据库。我想将此列转换为日期时间格式,但由于我使用的是 SQL CE 4.0 并且只能找到 SQL 的解决方案,所以我不知道该怎么做。

这是我想做的 SQL 示例:

SET DATEFORMAT dmy
alter TABLE [dbo].[tablename]
ALTER COLUMN columnname datetime

我知道我可能需要创建一个新列并使用查询将旧列中的数据复制/转换为新列。我只需要一些关于如何做到这一点的指导。

当前日期列的格式为“dd/MM/yyyy hh:mm:ss tt”。

如果有帮助的话,我一直在使用 Microsoft WebMatrix。

谢谢!

【问题讨论】:

【参考方案1】:

我同意你的观点:最好的解决方案是创建一个新列

ALTER TABLE yourTable ADD COLUMN newColumn DATETIME

(SQL Server Compact 中不存在 SET DATEFORMAT 语句)

并复制转换格式的数据

UPDATE yourTable SET newColumn = CONVERT(datetime, oldColumn, 103)

有关 SQL Server Compact 命令的深入描述,请查看http://technet.microsoft.com/en-us/library/ms173372.aspx

【讨论】:

以上是关于在 SQL CE 4.0 中将 nvarchar(50) 列转换为日期时间的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2012 中将两个 nvarchar 列与 Unicode 文本进行比较

在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型

将 SQL Server CE 数据库 (.sdf) 从 3.5 更新到 4.0

SQL CE 4.0 还是 SQL Express?果园对吗?

SQL Server CE 4.0 本地缓存代理?!英孚支持?

如何只修改一次sql server ce的列数据类型的长度?