我正在尝试通过唯一的标识符返回结果的不同日期。
例如:
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的新手,所以道歉我可能犯了一个明显的错误。到目前为止,我已经搜索了先前提出的问题。
与往常一样,我们非常感谢任何帮助和指示。
您可以使用T-SQLconvert函数提取日期。
convert
尝试
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日期时间字段的日期部分
希望这可以帮助!