我根据日期时间格式制作了一个日期。但是,我将其作为字符串/ nvarchar存储在我的数据库中,而不是日期时间。我可以比较这些日期吗?这是一种不好的做法吗?
我现在使用nvarchar存储日期时间。
答案 0 :(得分:2)
是的,您仍然可以比较它们,但这肯定是一种不好的做法,因为您需要将此字符串转换为日期数据类型,以便能够在它们之间进行比较。如果您在列上定义了索引,则它们将不再被使用,因为该列将被转换,并且它将在大型数据库上降低性能。
比较日期的例子如下:
SELECT *
FROM tableName
WHERE CONVERT(DATETIME, dateSTRColumn, XXX) > GETDATE()
其中XXX
是以字符串形式存储的日期的当前格式。
答案 1 :(得分:1)
您必须使用cast or convert从字符串中解析日期时间或直接比较原始字符串。后者可能取决于字符串存储的格式。例如,如果日期以“YYYYMMDD”格式存储,则可以简单地比较string1<字符串2。