1

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

是否可以将此 varchar 列作为整数进行操作以进行更低或更大的比较,并且鉴于日期以相同的格式 dd/MM/yyyy 存储,是否可以将 varchar 列也视为日期并使用函数:在之间?

4

2 回答 2

2

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

CONVERT(DATE, column_name, 103)

对于性能问题,您可以持久化和/或索引计算列。

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

于 2012-06-04T18:57:00.660 回答
1

像这样的工作:

SELECT Column1, Column2
FROM Table
WHERE CONVERT(datetime, DateColumn, 3) BETWEEN @StartDate AND @EndDate
于 2012-06-04T18:02:30.497 回答