1
13
好吧,在SQLServer2008中,有一个新的数据类型叫做“日期”,您可以使用该列并在其上创建索引。 当然,您也可以将“日期”类型的计算列添加到表中,只需将日期时间列的日期部分填充到该计算列中,使其持久化,并对其进行索引。应该工作得很好! 就像这样:
马克 |
2
2
既然您是2008年的,请按照Marc的建议使用日期数据类型。否则,一个更简单的解决方案是有一个非计算列(这意味着您必须在插入时填充它),它使用格式为YYYYMMDD的日期。这是一种整数数据类型,体积小,易于使用。 |
3
1
对于SQL2005,您可以做与Marc_推荐的基本相同的事情,只需使用标准的日期时间。它看起来像这样(这里是未测试的代码):
然后在上创建索引(justthedate,slug) 注意:这里的dateadd/datediff语句只计算合成日期。 |
4
0
多年来,我们在SQL Server中的计算列出现了各种各样的问题,因此我们不再使用它们。 您可以使用一个只有日期列的视图-并在该视图的列上放置一个唯一索引。 (一个可能有用的副作用是,您可以让视图排除一些行,这样您就可以实现“dateColumn必须是唯一的,但在dateColumn为空的情况下排除”)。 现有的compositionDate列可以拆分为两个字段-compositionDate和compositionTime-以及一个检索视图,如果需要,可以将它们重新连接在一起-这样就可以在仅日期列上使用本机索引。 (这可以在SQL 2005和更早的版本中使用date time实现——尽管在日期或时间上有点浪费,但不能同时使用两者) 最后,您可以有一个insert/update触发器,它强制不存在具有重复复合数据的其他记录(仅限日期部分) |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |