VARCHAR 与日期时间

Sun*_*nny 1 sql-server datatypes

在以日期和时间存储值的列上使用 VARCHAR 数据类型2020-01-01 11:04:37而不是DATETIME在 SQL 数据库表中使用数据类型的原因是什么?

Mic*_*zyn 7

没有理由。这是错误的设计,当您需要处理一些基于日期的过滤器或操作时会导致问题。

为了存储日期和时间信息,datetime应始终使用数据类型。

将日期作为字符串(varchars)处理会导致大量的转换,这对于性能来说是不利的。

所以,再次回答你的问题:这种 ddesign 根本没有理由。

完成答案(来自评论):

永远不要把话说绝了。当从 CSV 或纯文本文件导入数据时,能够在没有任何拒绝的情况下导入整个文件,然后执行第二步将数据从导入的表转换为最终目标表通常很有帮助。在这些情况下,我会将所有数据导入文本字段,而最终目标表将具有适当的数据类型。

这个应该只是中间步骤,而不是日期的方式将被保存。