簡體   English   中英

SQL Server - 比較存儲為字符串或 nvarchar 的日期或日期時間?

[英]SQL Server - Compare dates or datetime stored as a string or nvarchar?

我根據日期時間格式制作了一個日期。 但是,我將其作為字符串/nvarchar 而不是日期時間存儲在我的數據庫中。 我能比較這些日期嗎? 這是一種不好的做法嗎?

我現在使用 nvarchar 來存儲日期時間。

是的,您仍然可以比較它們,但這肯定是一個不好的做法,因為您需要將此字符串轉換為日期數據類型才能在它們之間進行比較。 如果您在列上定義了索引,它們將不再使用,因為該列將被轉換,並且會導致大型數據庫的性能下降。

比較日期的一個例子是這樣的:

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

其中XXX是存儲為字符串的日期的當前格式。

您必須使用cast 或 convert從字符串解析日期時間或直接比較原始字符串。 后者是可能的,具體取決於字符串存儲的格式。 例如,如果日期以 'YYYYMMDD' 格式存儲,您可以簡單地比較 string1 < string2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM