首页 > 解决方案 > 如何在 SQL 中填充日期和时间

问题描述

我无法在 SQL 服务器中填充同一项目的日期和时间。下面是三个简单的记录。

Date_Time                ID
9/6/2018 5:36:30 PM      12345
9/6/2018 6:19:02 PM      12345
9/7/2018 4:15:55 AM      12345

我希望我的结果在 1 行中,并且 Date_Time 列被填充,后跟逗号 (,)。

Date_Time                                                       ID
9/6/2018 5:36:30 PM, 9/6/2018 6:19:02 PM, 9/7/2018 4:15:55 AM   12345

有人可以指点我正确的方向/链接或简单的查询来解决问题吗?

谢谢,XH。

标签: sqlsql-serverstring-aggregation

解决方案


如果您使用的是 sql server 2017 或更高版本,则可以使用 string_agg 如下:

select id, string_agg(convert(varchar,DATE_Time, 22), ', ')
    from #YourTable 
    group by id

如果它低于 sql server 2017,您可以使用以下查询:

select id, stuff ((
    select ', ' + convert(nvarchar, date_time, 22) from #Table2 where id = t.id
    for xml path('')
    ),1,2,'') as dates
from #Table2 t
group by id

推荐阅读