0

不确定标题是否真的让问题很清楚,但基本上我在组合框中使用“SELECT DISTINCT”来查看不同的日志时间,但是日志时间列的格式(无法更改)是示例:
8 月 29 日: 8 月
29 日晚上 21 点晚上 9 点 22 分

这不好,因为即使使用 distinct 也会将它们判断为不同,因为它们是不同的。我想要什么:我想要一个 sql 语句,它将查看值并仅根据第一部分选择一个不同的值,例如 8 月 29 日,而不考虑时间。

有人有任何想法/代码吗?

更新 :: 我使用了 ypercube 的代码,但它适用于我想要的过滤器,因此当我选择一个日期(例如 29/08/2013)时,它会将数据网格光标带到 logtime 与此日期匹配的单元格,但是 logtime 必须保持格式 "August 29th 9:21pm" ,以及如何在 c# 中执行此操作的想法?

4

3 回答 3

0

我猜你想要像下面这样的东西

SELECT DISTINCT(DATE(created_at)) FROM users;
于 2013-08-30T10:20:06.187 回答
0

尝试:

SELECT DISTINCT DATEADD(dd, DATEDIFF(d, 0, cast(YourDateColumn as datetime)), 0) 
FROM LogTable

由于演员表,这在大型数据集上效率很低。但是由于您不能更改表..否则我会建议添加一个persisted computed列,该列在更新到表时进行强制转换,并且您可以添加一个索引。

于 2013-08-30T10:20:44.173 回答
0

如果数据存储在DATETIME列中并且您是 SQL-Server 的最新版本,则可以转换为DATE

SELECT DISTINCT 
    CAST(created_at AS DATE) AS date_created_at 
FROM
    SSISLog ;
于 2013-08-30T10:40:56.967 回答