0

我根据日期时间格式做了一个日期。但是,我将它作为字符串/nvarchar 而不是日期时间存储在我的数据库中。我可以比较这些日期吗?这是一个不好的做法吗?

到目前为止,我正在使用 nvarchar 存储日期时间。

4

2 回答 2

2

是的,您仍然可以比较它们,但这肯定是一种不好的做法,因为您需要将此字符串转换为日期数据类型才能在它们之间进行比较。如果您在列上定义了索引,则它们将不再使用,因为该列将被转换,并且会导致大型数据库的性能下降。

比较日期的示例如下:

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

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

于 2013-03-28T03:32:51.143 回答
1

您将不得不使用cast 或 convert来解析字符串中的日期时间或直接比较原始字符串。后者是可能的,具体取决于字符串的存储格式。例如,如果日期以 'YYYYMMDD' 格式存储,您可以简单地比较 string1 < string2。

于 2013-03-28T03:32:17.300 回答