Sql 如何将varchar转换为date
我在SQL Server 2008 R2中工作 我需要将视图中的varchar(50)字段转换为日期格式 我有一个视图,它使用以下内容创建“交货日期”字段: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()?以下内容为我
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岁),他想要一个类似的约会。将“格式”替换为“类型”,这样更有意义。