我在SQL Server 2008中有一个表MessageTimestamp
列varchar(50)
而不是datetime
。我想在两个日期之间从这个表中获取数据。
通常,如果列是datetime
,我会使用如下查询:
select *
from myTable
where MessageTimestamp >= @firstDate and MessageTimestamp <= @lastDate
但是,我现在无法使用此功能,因为这是varchar
。我需要一种尽可能简单的方法来获取这些数据,而不是更新列类型。任何建议都将不胜感激。
编辑:存储的示例日期格式 - &gt; 2016-05-16 11:20:00 AM
答案 0 :(得分:1)
使用CONVERT或CAST功能。例如,CONVERT(datetime,MesssageTimestamp)。
答案 1 :(得分:1)
尝试使用以下代码。
Select * from myTable
where cast(MessageTimestamp as datetime )>= @firstDate and cast(MessageTimestamp as datetime) <= @lastDate