如何在SQL Server中的日期列为varchar的两个日期之间获取数据

时间:2016-08-31 19:07:24

标签: sql sql-server sql-server-2008

我在SQL Server 2008中有一个表MessageTimestampvarchar(50)而不是datetime。我想在两个日期之间从这个表中获取数据。

通常,如果列是datetime,我会使用如下查询:

select * 
from myTable
where MessageTimestamp >= @firstDate and MessageTimestamp <= @lastDate

但是,我现在无法使用此功能,因为这是varchar。我需要一种尽可能简单的方法来获取这些数据,而不是更新列类型。任何建议都将不胜感激。

编辑:存储的示例日期格式 - &gt; 2016-05-16 11:20:00 AM

2 个答案:

答案 0 :(得分:1)

使用CONVERT或CAST功能。例如,CONVERT(datetime,MesssageTimestamp)。

答案 1 :(得分:1)

尝试使用以下代码。

    Select * from myTable
     where cast(MessageTimestamp as datetime )>= @firstDate and cast(MessageTimestamp as datetime) <= @lastDate