时间戳存储为Varchar,查询范围

时间:2015-09-01 14:07:29

标签: sql-server tsql

我有一个由ForceTen LMS编写的SQL服务器表。在它中存储了一些时间戳。但是,它们以这种格式存储为Varchar:

or

如何查询EndTime的范围?

when (<something> and some_field_to_compare IN ('1','2','3') ) or
     (not <something> and some_field_to_compare IN ('0'))

不要告诫我将时间戳存储为Varchar,我没有创建此表,也无法修改它或写入它的代码。如果你想责备某人,请责怪ForceTen LMS的作者。

1 个答案:

答案 0 :(得分:3)

来自SQL Server - Compare dates or datetime stored as a string or nvarchar?

SELECT *
FROM   tableName
WHERE  CONVERT(DATETIME, dateSTRColumn, XXX) > GETDATE()

其中XXX是以字符串形式存储的日期的当前格式。

在你的情况下:

SELECT * FROM Table WHERE CONVERT(DATETIME, EndTime, YYYY-MM-DD-hh.mm.ss) >= :param1 AND CONVERT(DATETIME, EndTime, YYYY-MM-DD-hh.mm.ss ) < :param2