我们正在重构一个奇怪的系统,在它的后端,应该存储为数字和日期列的值,以及正确设计的约束,全部存储为varchar(仅使用UI验证)。问题是,当我们这样做时,新系统我们的必须开始运行:
是否可以将此varchar列操作为整数,以便说更低或更高的比较,并且假设日期以相同的格式存储dd / MM / yyyy是否也可以对待它varchar列作为日期并使用函数:IN BETWEEN?
答案 0 :(得分:2)
您可以添加计算列(或带列的视图),如:
CONVERT(DATE, column_name, 103)
对于性能问题,您可以保留和/或索引计算列。
但是,如果要更改结构,也可以先修改数据类型。
答案 1 :(得分:1)
这样的事情会起作用吗?
SELECT Column1, Column2
FROM Table
WHERE CONVERT(datetime, DateColumn, 3) BETWEEN @StartDate AND @EndDate