admin

返回不同的日期

sql

我正在尝试通过唯一的标识符返回结果的不同日期。

例如:

ID|Date
1 | 2011-10-01 23:57:59
1 | 2011-10-01 23:58:59
1 | 2010-10-01 23:59:59
2 | 2010-09-01 23:59:59
2 | 2010-09-01 23:58:29
3 | 2010-09-01 23:58:39
3 | 2010-10-01 23:59:14
3 | 2010-10-01 23:59:36

时间并不仅仅取决于日期。因此,例如在ID 1上,我无法对ID进行区分,因为那只会返回我的一个日期。所以我想返回:

1|2011-10-01
1|2010-10-01

我尝试了以下查询:

Drop Table #Temp

select Distinct DateAdd(dd, DateDiff(DD,0, Date),0) as DateOnly
,ID
Into #Temp
From Table

Select Distinct (Date)
,ID
From #Temp

但是,我得到以下结果:

ID|Date
1 | 2011-10-01 00:00:00
1 | 2011-10-01 00:00:00
1 | 2010-10-01 00:00:00

我是SQL的新手,所以道歉我可能犯了一个明显的错误。到目前为止,我已经搜索了先前提出的问题。

与往常一样,我们非常感谢任何帮助和指示。


阅读 129

收藏
2021-07-01

共1个答案

admin

您可以使用T-SQLconvert函数提取日期。

尝试

CONVERT(char(10), GetDate(),126)

所以,就您而言,

Drop Table #Temp

select Distinct CONVERT(char(10), DateAdd(dd, DateDiff(DD,0, Date),0), 126) as DateOnly
,ID
Into #Temp
From Table

Select Distinct (Date)
,ID
From #Temp

更多信息:获取SQL
Server日期时间字段的日期部分

希望这可以帮助!

2021-07-01