Varchar字段上的Datetime和Integer函数

时间:2012-06-04 17:52:55

标签: sql sql-server database-design database-schema

我们正在重构一个奇怪的系统,在它的后端,应该存储为数字和日期列的值,以及正确设计的约束,全部存储为varchar(仅使用UI验证)。问题是,当我们这样做时,新系统我们的必须开始运行:

是否可以将此varchar列操作为整数,以便更低或更高的比较,并且假设日期以相同的格式存储dd / MM / yyyy是否也可以对待它varchar列作为日期并使用函数:IN BETWEEN?

2 个答案:

答案 0 :(得分:2)

您可以添加计算列(或带列的视图),如:

CONVERT(DATE, column_name, 103)

对于性能问题,您可以保留和/或索引计算列。

但是,如果要更改结构,也可以先修改数据类型。

答案 1 :(得分:1)

这样的事情会起作用吗?

SELECT Column1, Column2
FROM Table
WHERE CONVERT(datetime, DateColumn, 3) BETWEEN @StartDate AND @EndDate