Sql 如何将varchar转换为date

Sql 如何将varchar转换为date,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我在SQL Server 2008 R2中工作 我需要将视图中的varchar(50)字段转换为日期格式 我有一个视图,它使用以下内容创建“交货日期”字段: convert(varchar(50),[delvd_dt],110) as [delivered_date] 格式化的字段如下所示:2012-03-11 16:24:42.0000000 我需要的结果是一个日期,以便我可以检查范围内的日期。我更愿意在视图中执行此操作,以便使用SSRS创建报告的范围。您是否尝试过cast()?以下内容为我

我在SQL Server 2008 R2中工作

我需要将视图中的varchar(50)字段转换为日期格式

我有一个视图,它使用以下内容创建“交货日期”字段:

convert(varchar(50),[delvd_dt],110) as [delivered_date]
格式化的字段如下所示:2012-03-11 16:24:42.0000000

我需要的结果是一个日期,以便我可以检查范围内的日期。我更愿意在视图中执行此操作,以便使用SSRS创建报告的范围。

您是否尝试过
cast()
?以下内容为我返回了正确的日期:

select CAST('2012-03-11 16:24:42.0000000' as DATE)

也许您可以简单地截断毫秒并使用
CONVERT

SELECT Convert(datetime, LEFT('2012-03-11 16:24:42.0000000', 19), 102) AS [Date]

这甚至在MS SQL Server 2005中也可以使用

试试这个网站显示了几种格式选项

例如:

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) 

可能重复的,那么,为什么不首先修复表并将其存储在正确的数据类型中呢?这是错误的方向。他已经有了一个角色,想要得到一个日期时间。引语中令人困惑的部分是“格式”这个词。他说他已经有了一个varchar(50岁),他想要一个类似的约会。将“格式”替换为“类型”,这样更有意义。