我有一个由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的作者。
答案 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