0

我想用这样的 t-sql 创建索引视图:

    Select
   Table1_ID,
   cast(CONVERT(varchar(8),
   t2.Object_CreationDate, 112)AS DateTime) as Object_CreationDate ,
   Count_BIG(*) as ObjectTotalCount 
   from
       [dbo].Table2 t2 inner join [dbo].Table1 t1 on ...   
   Group BY
       Table1_ID, CONVERT(varchar(8), t2.Object_CreationDate, 112))

我只需要按列的日期部分(类型 datetime2)进行分组。Object_CreationDate

我还想在派生视图中设置列Theme_Id和 索引。 如果我在 SELECT 中使用 - 我会遇到此列的索引问题。因为此列 ( ) 不是确定性的。 Object_CreationDate
cast(CONVERT(varchar(8), m.Mention_CreationDate, 112)AS DateTime)Object_CreationDate

我想知道是否有可能解决一个问题。

4

1 回答 1

3

代替 ...

CONVERT(varchar(8), t2.Object_CreationDate, 112))

... 和

DATEADD(day, DATEDIFF(day, 0, t2.Object_CreationDate), 0)
--OR
CAST(t2.Object_CreationDate AS date)

第 2 种格式仅适用于 SQL Server 2008+,第 1 种更通用

这会从日期/日期时间数据类型域中的日期时间值中删除时间组件,而无需任何中间区域设置相关的日期时间格式

看到这些答案:二(评论)

于 2010-12-10T13:11:52.400 回答