使用like选择不同的值

时间:2013-08-30 10:17:20

标签: sql sql-server distinct

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

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

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

更新:: 我使用了ypercube的代码,但它适用于我想要的过滤器,以便当我选择日期时,例如29/08/2013,然后将datagrid光标带到logtime与此日期匹配的单元格,但是logtime必须保留在格式“8月29日晚上9点21分”,以及如何在c#中做到这一点的想法?

3 个答案:

答案 0 :(得分:0)

我想你想要跟随

这样的事情
SELECT DISTINCT(DATE(created_at)) FROM users;

答案 1 :(得分:0)

尝试:

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

由于演员而在大型数据集上效率非常低。但是因为你不能改变表格。否则我会建议添加一个persisted computed列来对表进行更新,以及你可以添加索引。

答案 2 :(得分:0)

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

SELECT DISTINCT 
    CAST(created_at AS DATE) AS date_created_at 
FROM
    SSISLog ;