在 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?果园对吗?