sql - 如何获取格式为 MM/DD/YYYY 的最新日期顺序

标签 sql sql-server tsql date

IF OBJECT_ID('TEMPDB..#CommaDate') IS NOT NULL
    DROP TABLE #CommaDate

CREATE TABLE #CommaDate
(
    DateFormate DATE
)

INSERT INTO #CommaDate VALUES('2018-02-24'),('2018-01-10'),('2017-05-23'),('2017-04-06')

SELECT DISTINCT STUFF((SELECT DISTINCT ',' + CONVERT(VARCHAR(20),DateFormate,101) 
              FROM #CommaDate 
              ORDER BY ',' + CONVERT(VARCHAR(20),DateFormate,101) DESC 
              FOR XML PATH('')), 1,1, '')
FROM #CommaDate

我期望的是甲酸盐的最新订单日期 MM/DD/YYY

02/24/2018,01/10/2018,05/23/2017,04/06/2017

最佳答案

由于数据类型是DATE,您可以轻松地对子查询内的结果进行分组和排序。显然,您期望得到 1row x 1col 结果,因此您可以放弃外部 FROM 子句:

SELECT STUFF((SELECT ',' + CONVERT(VARCHAR(20), DateFormate, 101)
    FROM #CommaDate
    GROUP BY DateFormate
    ORDER BY DateFormate DESC
    FOR XML PATH('')
), 1, 1, '')

输出:

(No column name)
02/24/2018,01/10/2018,05/23/2017,04/06/2017

关于sql - 如何获取格式为 MM/DD/YYYY 的最新日期顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52181945/

相关文章:

sql - 如果有重复记录,则更新同一表的列

sql - 透视这些数据的好方法是什么?

c# - 将大型 xml 文件插入 xml 列的最佳方法(在远程 SQL Server 上)

sql-server - @@OPTIONS 位掩码与 DISABLE_DEF_CNST_CHK

sql-server - SQL Server 相当于 Oracle 的 “when no data found” 异常

mysql - 将一行中的选定列转换为多行

sql - 两个外键引用一张表

mysql - SQL 查询中的 JOIN 运算符未返回预期结果

sql-server - 日期时间部分的 SQL Server 索引,例如 YEAR、MONTH

SQL 性能,使用 OPTION (FAST n)