sql - 在 SQL Server 中,将时间和日期拆分为两个单独的日期列是最佳做法吗?

标签 sql sql-server database database-design

将日期时间拆分为两个日期时间 SQL 列是最佳做法吗?

例如,2010-12-17 01:55:00.000 分为两列,

  • 一列包含日期时间 日期部分:2010-12-17 00:00:00.000
  • 一列包含日期时间 时间部分:1900-01-01 01:55:00.000

有人告诉我这是最佳实践,因为在某些时候 SQL 2000 不允许将时间放入日期中?甚至有数据存储标准来强制执行此操作,并且一些公司已确保以这种方式存储所有数据以符合某些数据存储标准?

如果是这种情况,我敢肯定有人在这里听说过,这听起来很熟悉吗?

最佳答案

在 sql server 2008 中,你有日期和时间数据类型,所以这不是问题。即使在 sql server 6 和 7 中,datetime 始终允许时间

人们拆分它的原因是因为对于 1 列中的所有内容,返回任何一天下午 3 点到 4 点之间下达的所有订单的查询需要扫描,而对于时间列,这可以通过查找(很多,很多更快)

关于sql - 在 SQL Server 中,将时间和日期拆分为两个单独的日期列是最佳做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4473769/

相关文章:

sql-server - 尽管安装了 SQL Server,但未安装 SQL Server PowerShell 管理单元

c# - 如何在 C# 中执行包含 "-"、 "\"或 ";"字符串的 TSQL 输入命令

sql - 传递表格数据的二进制格式

mysql - 获取对帖子投票的用户

sql - 根据优先级从列中选择值

c# - MSSQL 错误 'The underlying provider failed on Open'

php - MYSQL 获取最近的记录,然后在 where 子句中验证它的状态

mysql - 如何从一系列行中随机提取 N 条记录并不断迭代?

sql - 玩了至少三场比赛后 3 天内回来的用户数量?

database - 估计加入关系的大小